ICode9

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

Centos搭建ARK服务器之路

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

标签: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

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有