欢迎光临散文网 会员登陆 & 注册

方舟搭建私服实践记录

2020-07-02 01:42 作者:纪一希  | 我要投稿


前几天偶然发现阿里云618特惠,服务器跟不要钱白送的一样,之前一直跟着另一个大佬玩私服,突然想自己搭一个试试,于是买了服务器,绕了好多弯路踩了好多坑,终于是把服务器搞好了,在这里记录一下整个经历。

先说结论

我最终使用的服务器配置是4核8G内存,带宽3M,40G云盘,ubuntu18.04,开服工具是 ark-server-tools。

4核可能有点浪费,因为便宜我就买了最高配置,带我玩的大佬用的2核也挺流畅的。

带宽不一定需要很高,反正高一点下载更新快。

云盘,目前我只是刚刚搭建好,一共用了16G,我跟大佬玩了半年从孤岛到灭绝了,他说一共用了40G多一点。反正扩展磁盘也就几百块,真不够用了再买就好了。

内存8G比较勉强,因为打折的套餐最高只有8G我就只买了8G,空跑一张图大概要占6G,大佬的服可以同时开两张图,再开第三张图就开始爆卡,认真的长期玩的话经常会在几张图之间传送,所以内存最好多一点。

按我这个过程搭服务器的话,一定要有Linux和shell的使用经验,不然建议找别的教程。还有就是英文要基本过关。

如果你看这篇文章的时候还没开始搭自己的服务器,请一定整篇看完再开始动手!我这里是按照时间顺序把我做过的事记录下来的,所以前面都是坑!全篇看完再挑有用的就好了。另外我只记录经过,能简单百度到的东西就不在这里一一列出了。

详细经过:第一阶段

可能是出于某种装b心里,我最开始选择的系统是centos8.1,然后直接百度“centos方舟服务器教程”,就会出现下面这篇文章:

https://blog.csdn.net/u011558418/article/details/104670492/

按照这个教程一步一步来,他装了screen最后好像也没用,我前几天刚学了下tmux于是打算继续来装b(最后也没用上。在公司从来没当过管理员,所以加用户和改密码这里还特意去查了一下,adduser之后就有了新用户,passwd <用户名>是添加密码,不是把密码设成ark。。

firewall-cmd按他这样直接用并不行,新装的系统firewall并没开,还去查了一下怎么先把防火墙打开。其实端口不着急弄,最后都弄好了再去开放就好了,因为端口号也不一定非要用7777这几个。另外按这样设置完开放端口之后外面依旧不能访问,必须通过云服务器的管理界面配置开放端口才行,这个直接百度“阿里云怎么开放端口”即可。

按照他这个教程走到最后,激动人心的启动服务器,结果出现下面报错:

[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = 346110

辗转搜索了一番,最终找到了一个更靠谱的国外的教程:

http://www.gamewalkthrough-universe.com/Walkthroughs-Guides/Ark-Survival-Evolved/Dedicated-Server-Setup-Configuration/Linux/default.aspx

大体流程差不多,在设置文件上限这一步可以通过ulimit -a查看是否修改成功,不知道为什么我按他们这样修改了一通最后并没起作用,其实按第二个教程说的在开启服务器的脚本第一行添加ulimit -n 10000就好了,不用改那些麻烦的文件。

第二个教程开启端口用的是iptables,免去了开启firewall-cmd这一步,最终效果都是一样的,你还是要在阿里云的管理界面操作一次。这里我没试过只在管理界面操作,在shell里不用iptables开放行不行。

按第二个教程说的,出现上面的报错,要么是文件上限没设置对,要么就是其实他已经正常的启动了服务器。。所以可以通过top来看ShooterGame是不是跑起来了,内存占用了6G左右就是服务器已经启动好了。

这时候打开steam,左上角“查看” -> 服务器 -> 右下角“添加服务器",输入云服务器的公网ip(我没填端口,也不知道他是自己搜索了还是用了默认值7777)就可以搜到服务器,点击加入即可。服务器名称和密码配置之类的参照教程里去改ini文件就好了。

到这里,我成功的在游戏界面加入了我自己创建的孤岛,延时很低,运行很流畅,非常nice。

但是有几个问题,真正玩的时候还需要很多别的功能,比如添加mod,备份存档,回档,同时开多个图,这些东西前面的教程里并没有解决,但是问题不大,我只要搜索到每一个东西怎么弄,再自己做好脚本就可以了。

但在搜索的时候我发现这些东西已经有前辈帮我们弄好了,这就是ark-server-tools,从安装到开服到装mod到备份恢复存档,一条龙服务齐全,用的时候只需要几个简单的命令(装的时候那是真费劲),为了长久使用我果断决定换工具。

第二阶段

ark-server-tools的教程直接看他的git页面:

https://github.com/FezVrasta/ark-server-tools/

首先装依赖这一步我就没过去,libstdc++.i686装不上,我看别人用centos8.0也遇到了一样的问题,咱也不懂咱也不知道咋搞,索性现在服务器上啥也没有,为了继续装b,我把云盘抹了换上了centos7.8,这回装依赖就很顺利。

下一步按照教程安装steamcmd,他提供的这个steam官方页面说的是直接可以yum install,然而提示我并没有这个package,我后来换上ubuntu之后依旧不行,steam网页上说可能需要换源,但我感觉这个源可能在墙外面所以换不上。最后走的是手动安装,也就是跟前面两个教程里一样,直接下载steamcmd的包解压下来即可。

解压steamcmd的路径没什么讲究,单独放在一个文件夹就好,解压之后运行一下steamcmd.sh,他就会把steam装在当前这个文件夹内,装好之后quit退出就可以了,服务器上并不需要登录用户。

接下来开放端口的操作是一样的,端口号不一样,不过没关系,后面还可以配置,具体用多少看你自己喜欢就好。

后面这一步就很坑了,curl -sL就是下载一个文件,然后管道接bash执行而已,咱也不知道为啥云上的curl啥结果也没有,让bash执行了个寂寞,我在自己电脑上是能curl到输出的,而且内容其实就是git根目录下的netinstall.sh,所以我后来下载了他的release包,然后直接运行netinstall.sh这个文件。这一步被坑了好久,因为不知道curl出了啥问题,我就在这儿换上的ubuntu18.04。

教程到这里,他假定你已经按照steam官网的操作,添加了steam用户。后面-s steam这两个参数我至今不知道到底出了什么问题,这一步按理说只能在root下执行,因为脚本要修改/etc/ 目录,steam应该指的就是你安装steam的这个用户名,但是运行就是失败,具体什么报错我给忘了,反正最终我试出来的结果就是把参数里的steam换成root,然后在root里执行 cat netinstall.sh | sudo bash -s root,总算是成功装上了arkmanager。

然后按教程,进入steam用户使用arkmanager install安装游戏,结果程序一直没反应,ps看了一下他开了无数个进程啥也没干,好像是一直在递归创建进程,肯定是有什么bug,用root也没用。

在我思索了相当长一段时间之后终于发现了问题。他的第二个参数被我从steam改成了root,就导致/etc/arkmanager/arkmanager.cfg里面的写进去的目录名变成了/home/root/xxx,那显然是没这个路径的,手动把这个文件里所有的root都改成了steam(这里可以配置steamcmd.sh的路径,所以前面说你装在哪里都没问题),挨个路径检查一下有没有问题就好了。要注意的是修改/etc/下的文件要用root,但是如果你用root在steam用户下创建文件,steam自己是没有操作权限的。。在你切回去install的时候还是会发现装不了。

在目录,权限问题全都解决之后,终于成功运行arkmanager install,装上了游戏,并且成功开启了服务器。

在cfg文件里可以为各个图单独配置端口号,这里我也不清楚是只有几个可选的还是你怎么配都行,我觉得最好按官方wiki的去配,https://ark.gamepedia.com/Dedicated_Server_Setup,这里给出了各个端口的用处,按他的去配就可以了,多个图的端口前往别配重了,然后记得不能连号,因为游戏端口(比如7777)的下一个端口(7778)是默认被占用了的。

ark-server-tools使用介绍

这里只说几个我目前使用了的功能。

/etc/arkmanager/arkmanager.cfg相当于是全局参数,所有的图都会使用,所以像资源倍率驯服倍率关闭battleye这种全都一样的配置往这里写就可以了,参数怎么加看git的说明或者arkmanager.cfg注释里的说明就好。

arkmanager通过instance管理多个服务器,在/etc/arkmanager/instance/下可以放多个服务器的配置,然后操作的时候加上服务器名就可以了。比如创建/etc/arkmanager/instance/TheIsland.cfg,在里面配上服务器名(在游戏里显示的服务器名),密码,然后 arkmanager start @TheIsland ,就会使用TheIsland.cfg开始运行服务器。

注意这里的@TheIsland是对应了我自己命名的文件TheIsland.cfg,你可以起随意你喜欢的名字,比如WoChaoShuai.cfg,这样就是arkmanager start @WoChaoShuai,cfg具体开启了哪个地图是在cfg里面的配置决定的。

安装mod首先要去创意工坊找到mod的编号,比如听宇强势推荐的A镜,awesome spyglass,编号是1404697612,那么只需要两步,arkmanager installmod 1404697612 @TheIsland,arkmanager enablemod 1404697612 @TheIsland,就可以了,打开服务器就可以在印痕技能里搜索到(等级没到但只要名称打对了就能搜出来。

关于备份,如果你要备份的是当前时间点,记得先手动存档 arkmanager saveworld @TheIsland,不然你存到的就是你上一次下线的时候的档,每隔15分钟存的那个防crush的档是另一个文件。存好之后 arkmanager backup @TheIsland,就会在backup文件夹下生成一个tar.gz,backup文件夹不知道在哪就去arkmanager.cfg里面找,这个最好给每个instance单独开一个。回档的时候找到tar.gz文件(存档的时候会自动建一层日期的文件夹,并不是这个),然后 arkmanager restore xxx.tar.gz @TheIsland 就可以了。

可以设置backup file的上限大小,当所有backup超过这个大小之后会默认删除最老的存档,再也不用手动管理啦!


服务器的整个安装和实验过程就分享完啦,全文手打的,懒得再开服务器去贴日志和文件名什么的,所以上面要是有什么文件路径敲错了不要怪我。

带我的大佬开服用的是LinuxGSM,听说也比较容易弄,但我感觉装mod和回档应该没有ast方便,有兴趣的人可以试试。。


最后分享几个有用的链接:

ark-server-tools的git,用来查arkmanager的各种参数:https://github.com/FezVrasta/ark-server-tools/

方舟wiki,用来查服务器参数都有哪些怎么配置:https://ark.gamepedia.com/Server_Configuration

方舟搭建私服实践记录的评论 (共 条)

分享到微博请遵守国家法律