Centos搭建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