
一、服务器搭建
基本上逐条复制,不报错就是成功。
1.安装服务器的基本条件
1 | sudo yum update |
2.安装 SteamCMD 与 饥荒本体包
1 | mkdir -p /home/steam && cd /home/steam |
在 home 路径下创建 steam 文件夹,用于存放这些软件以及游戏等,解压缩下载的 steamCMD 后如下内容

然后运行 ./steamcmd.sh
开始自动下载安装,直到进入如下界面,输入 quit 退出
每次都是通过 ./steamcmd.sh 进入软件界面

接下来进入 steamCMD 进行游戏的安装
1 | 设置安装路径 |
安装完后显示如下界面,之后 quit 退出

首先解决最重要的问题,linux下饥荒的服务器似乎需要的组件跟现在的组件产生了名字上的差错,导致启动服务器会显示缺少关键的组件 libcurl-gnutls.so.4 ,因此需要执行下面的命令来解决:
1 | ln -s /usr/lib/libcurl.so.4 /home/steam/game/dontstarvetogether/bin/lib32/libcurl-gnutls.so.4 |
然后接着执行:
1 | cd /home/steam/game/dontstarvetogether/bin |
输入./master_start.sh启动主世界服务器。

当看到上图,表名服务器启动但还未配置所以显示未正常启动。
但这是成功的标志,之后按下 Ctrl + C 正常关闭服务器。
同样的输入 ./cave_start.sh 启动洞穴服务器并正常关闭。
经过上述服务器初次启动,在 /home/steam/game/save/dstsave/dst/World1/ 文件夹下就会自动生成默认的配置文件

这个配置文件就是我们饥荒服务器的配置文件了,记住这个地址,接下来有两种方式,一种是自己修改配置,这种要求比较高,另一种就是现在自己电脑上创建一个服务器,然后将配置文件复制到Linux服务器上,推荐使用第二种,简单,准确,这里也只描述第二种。
3.创建服务器并启动
本地创建房间,并复制到 Linux 服务器
在自己电脑上先创建一个新的服务器,并设置好你的房间名、密码、地洞、配置好服务器mod,然后点击创建,等房间创建好到选人界面,就可以退出了,比如下图的房间。

然后按照上图的位置打开世界的存放位置

将上图的三个文件全部复制到linux服务器上,直接替换World1 中的内容。
上传完成后,新建一个 cluster_token.txt 存放服务器token信息
1 | vi cluster_token.txt |
注:不会用vi的用户可以在自己的电脑上右键新建txt文档,然后上传上去,也可以等下面获取token并填入后,一并上传
World1 文件夹下的内容

获取官方服务器 token 并粘贴到Linux 服务器上
1.打开个人账户网页

2.先进入游戏总列表,找到饥荒,在点击下面的游戏服务器界面

3.进入后,会出现这个界面,给集群名起一个名字,这个名字与搜索页面的房间名是不同的,这个仅作为在此页面的区分标记,毕竟可能一个人有许多服务器,自己能记得清即可。
点击 添加新服务器,变成一串代码——token,将这个字符串复制到 cluster_token.txt 中

启动服务器
为了让饥荒的服务运行在后台,所以采用了 screen 作为跳板,下面仅附带必须的语句,具体常用的语句,在文章最后稍加介绍
先启动主地图服务器
1 | cd /home/steam/game/dontstarvetogether/bin |

出现上面 Sim paused 证明服务正常启动了,下面可能还有其他日志,但目前并不是很重要。
然后按下 Ctrl+A 然后再按下 Ctrl+D 就可以让服务后台运行,并回到原来的控制台
同样的方式启动洞穴世界
1 | 指定screen名称 |
出现上面 Sim paused 证明服务正常启动了,下面可能还有其他日志,但目前并不是很重要。
然后按下 Ctrl+A 然后再按下 Ctrl+D 就可以让服务后台运行,并回到原来的控制台。
这时可以通过以下命令来查看改服务是否启动
1 | netstat -nlp |grep :1099* |
10999为主服务器的端口,10998为洞穴的端口,如果两个都显示值,则表明启动成功,如下图。

如果要退出服务,可以杀掉进程,进入screen,退出就行了
1 | #杀进程 |
启动之后,应该就能够在游戏中搜索到你的服务器了,如果搜不到,找找问题所在,或者留言,不一回复。

如上图所示,新建的房间,专属服务器,第一天,但是一点在游戏中我们是配置了mod的,但是在这里却没有显示,mod需要单独设置。
设置mod
在我们开始的房间文件里有两个文件夹,一个是“Master”和“Caves”,这两个分别代表主地图和洞穴目录,他们下面的文件都是一样的,以“Master”为例

这里面的 server.ini 是服务器的配置选项,应该能看懂,但不推荐在这里改,建议游戏里面设置好后,直接复制上去。
modoverrides.lua 就是我们之前房间配置好的mod,因为这个文件是创建房间自动生成的,没有任何问题,在这里写是为了告诉你这个文件的作用,并且记住这个文件,等下要用到。
回到我们之前服务器的目录,下面有一个mods文件夹,进入这个文件夹
1 | cd /home/steam/game/dontstarvetogether/mods |
这个时候你会在里面发现有一个 dedicated_server_mods_setup.lua 文件,里面一堆英文而且全都注释的,我们之所以没有mod是因为这个文件没有引入并下载mod,所以我们编辑这个文件,同样你可以在Linux里面使用vim编辑,如果你不懂vim命令,可以在自己电脑上创建一个名叫 “dedicated_server_mods_setup.lua” 的空文本,然后将如下的代码粘贴进去,保存后再复制到Linux下)
1 | 查看这个文件 内容 |
1 | --There are two functions that will install mods, ServerModSetup and ServerModCollectionSetup. Put the calls to the functions in this file and they will be executed on boot. |
其中ServerModSetup(“1216718131”)就是引入mod,括号里面的数字就是mod的id,还记得上一步要你记住的那个modoverrides.lua文件吗?打开那个文件,如下:

[“workshop-1392778117”]里面的这一串数字就是mod的id,所以你将modoverrides.lua文件里面所有的workshop对应的数字(也就是你配置的mod)全部复制到dedicated_server_mods_setup.lua 文件里,一个mod对应一条ServerModSetup(“1392778117”) ,修改好后再重启服务器,mod就配置好了。

重新启动服务的时候,会自动下载mod,这个mod会下载到游戏的本体中,而不是save中。
下载过程比较麻烦,并且容易出错,然后服务自动终止,可以多启动几次,让mod慢慢下载,直到下载完毕,服务能正常启动。基本两三次就能下载完,并正常启动。
如果mod比较少,直接复制修改就行了,倘若mod 较多,可以用脚本批量导出标准格式,有时间写一个。
配置其他设置
1.配置管理员
用谁的账户创建token,谁就是天然的管理员,不用配置,如果想添加其他人做管理员也很简单。
首先准备好要做管理员的好友的KLEI用户ID,怎么看好友的KLEI用户ID?往下看
打开游戏,点击用户信息

箭头指向的就是ID,复制下来。
然后进入之前的/home/steam/game/save/dstsave/dst/World1目录,也就是第三步最后面cluster_token.txt存放的目录,使用vim命令(没有vim的可以用vi命令)创建一个名叫“adminlist.txt”的文件
1 | cd /home/steam/game/save/dstsave/dst/World1 |
按 i 开启编辑(开启编辑后下面会显示 – INSERT –),将好友的KLEI用户ID复制到adminlist.txt文件里,然后按一下esc退出编辑(下面的 – INSERT – 会消失),再按 :wq 保存文件。如果要加两位管理员,则换一行输入第二位好友的 KLEI用户ID,一行只能放一个好友的 KLEI用户ID。

然后服务器重新启动,至此,服务器就搭建好了。

可以跟小伙伴们一起游玩了,服务器其实不卡的,我这边蹭的邻居家的网络,是我自己太卡了。
推荐一波【神话书说】mod,非常有意思。作者一直在更新。
二、服务器后期维护
只要游戏更新、mod更新、甚至steam更新都可能导致游戏服务器找不到,或者进不去,所以要及时更新。
1.更新游戏
首先进入之前的steamcmd的安装目录,/home/steamcmd,然后启动steamcmd
1 | cd /home/steam/steamCMD |

上面的小警告不是大问题,不影响正常使用。
当你看到上图这种以 Steam> 开头的就代表进入了SteamCMD了,接下来再接着执行以下代码代码:
1 | (这里的/home/dstserver要改为你们自己的服务器路径) |
等服务器更新完成就OK了。
2.mod更新
mod跟新其实是自动的,当按照上述的步骤,将使用的mod编码写到 dedicated_server_mods_setup.lua 中后,每次启动服务器,它都会自动更新mod