ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Centos搭建ARK服务器之路

2020-03-05 11:37:52  阅读:1004  来源: 互联网

标签:ark Centos firewall 端口 update 添加 服务器 ARK


最近ark打折,买了之后和小伙伴准备一起搭建服务器来玩,然后就查了下资料,因为本人服务器是centos的 利用剩余空间弄了个服务器,然后发现,ark服务器真耗内存啊……

下面这些内容引用这个文章的,感谢下这位兄台:

https://blog.csdn.net/w6853266/article/details/85017266

**

正式开始:

**

更新系统(其实这一步我跳过了,因为生产环境,不敢乱update)

yum update -y

安装窗口会话工具(可以让你在退出ssh后保留当前运行的服务端),已安装或有其他工具的请跳过(因为用了其他工具 所以这一步也跳过了)

yum install screen

安装网络在线工具Centos默认不安装,已安装或有其他工具的请跳过,下载rpm包安装的请跳过

yum install wget

为服务器创建新用户。 确保使用强密码(不建议使用root开服,如果已经有一个非root权限用户,请忽略)

adduser ark
passwd ark

Centos 7默认使用firewall作为防火墙,我们先添加允许的端口,家用主机进路由器设置dmz或配置端口转发,第三方云请在控制台添加端口。

添加游戏本体端口(加–permanent参数永久有效,不加重启后端口无效)(因为我这边用了第三方面板appnode,所以防火墙就直接面板里配置了)

firewall-cmd --zone=public --add-port=7777/udp --permanent
firewall-cmd --zone=public --add-port=7778/udp --permanent

添加Steam服务浏览器搜索端口(开启它在Steam上才能找到你的服务器)

firewall-cmd --zone=public --add-port=27015/udp --permanent

添加监听端口,不想当腐竹请跳过

firewall-cmd --zone=public --add-port=32330/tcp --permanent

重启防火墙使配置生效

firewall-cmd --reload

安装运行SteamCMD所需的库

yum install glibc.i686 libstdc++.i686 ncurses-libs.i686 -y

具体作用不详,貌似是服务器加载时会开启超过7万个文件。

echo "fs.file-max=100000" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
 
vi /etc/security/limits.conf

将以下内容添加到/etc/security/limits.conf中

* soft nofile 1000000
* hard nofile 1000000

切换到我们刚刚创建的用户并进入用户目录(切换到非root用户)

su ark
cd ~

下载SteamCMD并解压

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar xf steamcmd_linux.tar.gz

运行SteamCMD并安装服务器、效验并退出

./steamcmd.sh +login anonymous +force_install_dir ./ark +app_update 376030 validate +quit

376030是ARK在steam的编号,其他游戏可以自行百度

下面更新服务器,我们制作一个脚本来更新服务器,首先创建文件

vi /home/ark/update_ark.txt

将以下内容添加到update_ark.txt中

login anonymous
force_install_dir ./ark
app_update 376030
quit

执行脚本更新服务器

cd ~
./steamcmd.sh +runscript update_ark.txt

创建服务器启动脚本

vi arkserver.sh

将下列内容添加至脚本中

ShooterGame/Binaries/Linux/ShooterGameServer "TheIsland?listen?MaxPlayers=10" -nosteamclient -server -log

可以加入以下参数,参数中间以英文的问号做连接符,其实GameUserSettings里的参数都可以写到这里,但是通用设置还是建议写到GameUserSettings里

TheIsland 中心岛
ServerPVE true = 开启 = 无法杀人
ServerHardcore 每次死亡从1级开始重来
ServerCrosshair 开启准星
ServerForceNoHUD 禁用浮动名字
AltSaveDirectoryName 保存服务器数据到另一个目录(允许下载存档?)(如果需要开多通服务器,这里需要填写,比如AltSaveDirectoryName=Save_EX -NoTransferFromFiltering -clusterid=mycluster1)
GlobalVoiceChat 全服语音. 所有人可以听到
ProximityChat 文字聊天. 只有附近玩家可见
NoTributeDownloads 不载入服务器外部人物数据
AllowThirdPersonPlayer 启用第三人称视角
AlwaysNotifyPlayerLeft 显示玩家离开信息
DontAlwaysNotifyPlayerJoined 禁用玩家上线信息
MapPlayerLocation 开启小地图定位
DifficultyOffset 服务器难度 0-1之间, 支持小数
SessionName 服务器名称 这个比较重要,方便找自己服务器的
Port 服务器端口(每个服务器要不同)
QueryPort steam的监听端口(前面开放的那个27015端口)
RCONPort rcon命令行端口(这个我本机试了好使,远程的rcon连不上,也不知道为什么,后来我是曲线救国,在本机调用rcon,然后远程调用本机的程序实现的基本操作)
RCONEnabled true=开启 false=关闭 是否开启rcon命令行,和上面那个配套用的
ServerAdminPassword 管理员密码(这个一般推荐写到GameUserSettings中,不过要想每个服务器不一样,还是得单独写下)

运行启动脚本:

sh arkserver.sh

启动后在用户目录下的 ark/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini中修改服务器参数,包括服务器名称、玩家上限、PVP开关等,也可以在启动脚本中添加参数

然后说下多通服务器,多通服务器其实就是运行好几个最后一步那个脚本,设置不同的端口,不同的存档位置什么的,但是存档最后集群的值(clusterid)必须要一样(等疫情过后到公司打算试下多台服务器集群)
如下:

AltSaveDirectoryName=Save_EX -NoTransferFromFiltering -clusterid=mycluster1

不过用linux搭建有个问题,就是我找了arkserverapi扩展,貌似不支持linux……还在找方法去扩展rcon命令,否则的话很多东西没法实现……

标签:ark,Centos,firewall,端口,update,添加,服务器,ARK
来源: https://blog.csdn.net/u011558418/article/details/104670492

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有