在 Ubuntu 16.04 上搭建饥荒(Don't Starve Together)服务器
在 Ubuntu 16.04 上搭建饥荒服务器(Don’t Starve Together)
《饥荒联机版》是原生态荒野生存游戏《饥荒》的多人联机独立资料片。现在,它包含资料片《A New Reign: Part 1》,即一系列更新的第一弹。《A New Reign》(新王朝)专为多人联机游戏而打造,能带领玩家探索查理统治之下的《饥荒》游戏世界。[引自 Steam 页面介绍]
声明:本文允许任何人在不以商业目的为前提的情况下并注明原文地址后进行转载。所有文中内容仅代表笔者个人观点,也欢迎你在评论区提出自己的观点看法。
- 本文所有内容均为Steam版饥荒相关操作,WeGame(TGP)用户请另寻方案。
Windows 建服还是 Linux?
Windows 和 Linux 内核服务器的区别在这里不需要过多的论述,根据实际情况选择合适的平台进行搭建能带来很多益处。Windows 搭建服务器的最大一个好处莫过于方便管理,由于 Windows 窗口化的操作,便捷的文件管理对于新手来说是非常理想的。然而 Linux 类的服务器在性能上往往能得到认可。就以我的感觉为例,曾在 Windows 和 Ubuntu 服务器上搭建饥荒服,Windows 的性能是远远比不过 Linux 的。
在Steam社区指南中,我们可以找到关于饥荒联机版(为了方便,下文所说”饥荒“均指饥荒联机版搭建Windows服务器的详细教程指南,指南里详细的给出了Windows建房所需要注意的事,常见的故障处理,以及一些常规的服务器操作,并给出来配置脚本,我认为这份指南已经不能再详细了,如果你连这一份指南都没有办法很好的理解,那么在Linux类服务器上建房会给你带来不少麻烦。
云服务器的选择
对于一般的 6 人或者 6 人以下的服务器在 Ubuntu 下运行的话 CPU 选用 1 虚拟 CPU 就基本能满足地上+地下这样的两个世界了(地上和地下分别算作一个世界)。腾讯云和阿里云均提供了学生机,如果是在校大学生,就能以很低的价格体验。
选择饥荒服务器内存需求需要特别的注意,根据世界的设置基础需要的内存大约在 200~300MB 每个世界,然而通常我们会选择安装很多 Mod,虽然这些 Mod 本身并不大,但在服务器运行过程中会占用大量的内存。然而每个 mod 对服务器资源的消耗是不同的,在这里不能给一个很标准的参考,在这里根据我的经验给出建议这样的建议:CPU 和内存的比例在2:3 左右(如 1 核 2G,2 核 2G 或 2 核 4G 这样),在小型的饥荒服务器上,这样的配置能带动大部分不同需求的游戏和 Mod。如果内存不足带来的将会是服务器的卡顿和次游戏体验。
服务器带宽,如果不考虑 Mod 对带宽的占用,饥荒服务器对带宽的要求可以说非常低,在 DST Dedicated Server 服务器配置教程(Windows 建服指南)中给出这样的建议:
网络上传速度:8 KB/玩家/秒。
如果按照独立服务器最大人数为 6 人来换算,网络上传速度必须达到 50 KB/秒或以上才能让6个玩家同时进行游戏,当然网络上传带宽越大越好,较差的网络通信会导致连接独立服务器的玩家动作卡顿以及卡屏。
意味着哪怕只有 1Mbps 的宽带理论上也容纳 16 个玩家同时游戏,经过实践,在无 Mod 房确实能实现,但如果 CPU 或者内存性能不佳,给玩家的感受也会是网络差(可能我们理所当然的认为卡顿是网络原因吧),所以如果你感觉你的带宽明明是充足的但似乎有点卡的话,请确定到底是什么造成的影响,从而判断如何升级配置或调整设定。部分 Mod 对带宽的占用也是较大的这点也是需要注意的,不过好在大部分的云服务运营商允许我们简单的调整带宽设置。
Ubuntu 16.04 建服指南
准备工作
你需要拥有:一份正版饥荒,饥荒建服 Token,云服务器(或本地计算机),相应连接软件(如 Putty,Winscp)。
*获取 token 方案请参考 Win 建服说明或其他相关 Steam 社区指南。
*如果使用本地计算机请确认你的计算机可以通过公网访问(端口映射,内网穿透等方案请自行百度)。
如果你之前拥有建服经历,那么在Ubuntu上搭建饥荒服务器将会较为轻松。
Steam 上工具里有饥荒建服工具我们需要在服务器上安装它,我们开始吧!
安装 Steam CMD
这里参考 Valve Soft 的 Wiki 中给出的教程 (原文链接[英文])
在 Wiki 提到用管理员权限(root 等)运行 Steam CMD 会给系统带来安全风险(如果你不在意的话也可以忽略),推荐为 Steam CMD 专门创建用户在低权限的模式下运行。这不是必须的步骤,但对服务器安全有一定的帮助。
1 | 以管理员(root)身份创建用户 |
在介绍中提到我们可以通过分发存储库安装(如果可用)或者手动安装
1 | 通过库安装 |
很遗憾的说我我的源里并没有 steamcmd,所以采用手动安装
1 | apt-get install lib32gcc1 |
下载 SteamCMD 并解压
1 | wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz |
安装饥荒建服工具
运行 SteamCMD
./steamcmd.sh
首次运行或需要更新的话 Steam CMD 将自动更新。
看到 Steam 命令提示符则为成功
匿名登录,安装饥荒建房工具(更新操作相同)
1 | 登录 |
安装饥荒运行需要的其他依赖
1 | sudo apt-get install lib32stdc++6 |
饥荒服务器配置
用户文档位置:~/.klei/DoNotStarveTogether/
创建存档目录
1 | mkdir -p ~/.klei/DoNotStarveTogether/World1/Master |
之后需要添加世界创建规则
其他操作和Windows建服操作一致,这里省去
测试运行
1 | cd /home/steam/steamapps/DST/bin |
Mod均完成下载,运行正常,至此安装完毕,关于后台运行,开机运行,启动脚本等可以参照往上各种说明。
注意事项:
1.注意主机防火墙配置,设置里需要使用的端口需要开放
2.如果遇到类似DoLuaFile Could not load lua file scripts/main.lua这样的报错,是因为一些奇奇怪怪的原因,具体不作分析,解决方案为不要在非bin目录下执行启动程序,如使用XXX/bin/dontstarve_dedicated_server_nullrenderer这样的形式
3.出现Filename [../../Master/save/sharddata_2] is not allowed by PersistentStorage.类似报错,一般造成的原因是存在有mod启用(modoverrides.lua)但这个mod并没有被服务器加载(dedicated_server_mods_setup.lua),请参考mod配置指南。
更新日期:2018年1月19日
启动脚本例
1 | cd /home/steam/steamapps/DST/bin/ |