饥荒联机版云服务器搭建全攻略
由于笔者在玩饥荒联机版时,和朋友联机老是出现卡顿的情况,然后在尝试过很多种方式(局域网联机、内网穿透)都不能稳定联机,很影响游戏体验,在听说了搭服务器这个方法后就去尝试了,我先尝试了本地搭建服务器,由于电脑性能或是其他原因,联机效果也不是很理想,所以想去搭建云服务器,结果就是可以长期稳定联机,网络延迟很低,几乎没有卡顿。以下就分享一下完整的搭建过程,希望可以帮助到大家。
资源链接:GitHub - ttjiejie/DST-tools · GitHub
一、云服务器准备
我们需要先去国内提供云服务器的平台注册账号,这里有很多选择,阿里云、华为云、腾讯云等等,这里推荐阿里云,由于阿里云新用户完成实名认证后会送300元的云服务器免费额度(其他平台我没有试过,大家可以自行尝试,目的都一样,拿到一台云服务器),注册认证过程我就不详细介绍了。
完成注册认证等过程后,我们来到阿里云首页,点击上方的 "权益->140+云产品 免费试用"

接着点击这个ECS免费试用,由于我已经领取这个权益了,界面显示已试用了,正常新用户应该就是一个
试用教程、立即试用两个按钮,点击立即试用即可。

申请完试用后,我们来到云服务器ECS控制台,找不到入口的可以在阿里云主界面点击这个三条横。然后搜索云服务器ECS,然后访问就可以进入控制台了。


进入到控制台我们点击创建试用ECS,然后这里也可以看的云服务器详细配置,几核几G的,越高电脑性能越好,也可以看的我们的免费额度可以用多久,这里我选择的是2核4G的配置,算下来可以免费用50多天左右,大家可以自行选择,系统选择Ubuntu即可,然后点击立即试用。
!注意:这里的网络节点可以选择地理位置离你近的那个节点,博主在武汉,选择了杭州的节点,网络延迟就比较低了,这里你们自行选择。

等待ECS创建完成,在这之前我们需要一个可以远程连接这台服务器的软件,这里可以使用Termius、xshell等工具,我这里使用的Termius,因为我觉得它的UI界面比较整洁、美观,不过这个貌似要付费。如果不想使用这些工具的话,怕麻烦的话,也可以使用阿里云自带的远程连接。


由于我们还没有设置密码,直接点击登录即可,如果后续需要进行安全加固的话,可以设置强密码或者使用ssh私钥进行连接。
连接进来可以正常显示即可

到此我们的服务器准备就完成了,由于考虑到许多不太了解这些服务器这类东西的朋友,这里服务器准备讲的比较详细。接下来是就是配置服务器了。
二、服务器具体配置
1.安全组放行
在云服务ECS管理台点击安全组,然后创建一个安全组即可。

接下来需要把我们刚刚创建的云服务器加入这个安全组,并增加两条规则,放行10998和10999端口,这两个端口是饥荒服务器需要使用到的端口,不放行我们可能无法搜索到房间加入游戏。

2.工具箱脚本上传
这里的工具箱是笔者自己为了方便管理服务器编写的脚本,实现了基于图形化的界面来管理服务器,功能待会一一介绍,这里我们需要把这个脚本上传到服务器上,脚本资源获取方式在文章开头。

这里可以使用阿里云的自带的文件上传功能,把获取到的脚本文件上传即可

在终端执行ls,查看当前目前存在这个文件即可。

接着执行chmod +x dst-toolbox-v2.sh赋予文件执行权限,然后执行bash dst-toolbox-v2.sh这个命令,这个命令是以后打开工具箱的命令,可以正常显示工具箱界面即可。

三、工具箱具体使用
1.饥荒服务器初始化
我们选择工具箱的 22一键初始化选项,然后选哟root权限的地方输入y即可,这一步是下载安装饥荒服务器以及其依赖,由于饥荒服务器文件比较大(4-5GB),这里需要多等待一会儿。

这里等待完成后,先退出工具箱使用ls查看一下当前目前有无有无这几个目录,有的话就是初始化成功了。接下来就是创建集群或者导入集群。

2.新建存档
首先,我们需要了解的是windows上我们游戏存档的位置是保存在这个目录下的,并且饥荒联机版存档常常被称为集群,因为分为地面世界和洞穴世界两个分片,两个分片合起来就是一个集群,也就是Cluster,像我这里的目录就是说当前创建了一个存档,本地存档是在这里保存的,如果是云存档的话就是在 CloudSaves目录里保存的。

然后一个存档的文件结构大致如下,其中比较重要的文件是modoverrides.lua文件,这个我们后续配置模组时会用到。
~/.klei/DoNotStarveTogether/ # Klei 配置根目录
├── Cluster_1/ # 集群目录
│ ├── cluster.ini # 集群配置
│ ├── Master/
│ │ ├── server.ini # 地面服务器配置
│ │ ├── server_log.txt # 地面日志
│ │ ├── master_start_tmp.log # 启动检测临时日志
│ │ └── modoverrides.lua # 地面模组配置
│ └── Caves/
│ ├── server.ini # 洞穴服务器配置
│ ├── server_log.txt # 洞穴日志
│ ├── caves_start_tmp.log # 启动检测临时日志
│ └── modoverrides.lua # 洞穴模组配置
└── backups/ # 备份目录
简单了解完,我们就来创建一个新集群或者存档了,导入已有存档在下面,可以自行去查看。
选择工具箱的 9.创建集群选项,输入完相关选项后,我们的集群就创建好了,这里的集群名称随意起即可,方便直接知道是哪个档就好。

不过这时候我们需要去饥荒官网申请一个专用服务器Klei Account,这个是链接,需要绑定你的steam账号,这一步我就省略了。
进入官网后,点击上方的游戏,创建一个服务器,名称随意,我们需要的主要是我打马赛克的字符串,我们点击配置服务器,然后点下载设置,这时候会下载一个压缩包、下载完成后解压即可。

我们需要的是cluster_token.txt文件,这个我们需要上传到服务器。

这里需要上传到服务器的/root/.klei/DoNotStarveTogether/<刚刚你命名的文件>/这个目录,这里上传我使用的是Termius,开头介绍过的一款工具,这个界面更加直观。
切记这个文件一定要添加进去,不然搜索不到服务器,并且每次新建集群或者导入集群时都需要把这个文件放入对应目录

上传完成后,一个全新的存档就可以使用了,可以选择 1.启动服务器看能否搜索到游戏房间,出现这个界面就是启动成功了,(Caves停留在初始化世界这个地方是显示错误,博主尝试了很多方法,这个问题还没有解决,不过只是显示问题,实际上两个分片都启动成功了)

这时候我们就可以去游戏里查看了,点击主界面的浏览游戏,然后搜索你自己输入的服务器显示名称。可以看到我们创建的服务器已经正常启动了,输入设定的密码就可以加入了。

3.已有存档导入
我们需要进入到我们windows上保存游戏文件的位置,上文提到过,或者也可以直接使用游戏里的打开本地文件夹来查看

博主这里的文件就是保存在整个位置,另一个世界是云存档,所以保存在CloudSaves目录里。我们需要做的是将整个Cluster_1文件夹上传到服务器的 dst-cluster-import目录,这里的这种方式是想照顾一些不懂这方面知识的朋友,如果知道这些原理的话,可以手动进行配置(也就是将这个文件夹复制到/root/.klei/DoNotStarveTogether/ 目录下也可以)。看个人,这里主要就是只需要复制到一个命名明显的dst-cluster-import目录然后进行自动导入。


复制到dst-cluster-import目录后,进入工具箱选择 11进行导入集群即可,需要添加cluster_token文件哦。

这样就是成功导入了。
四、模组管理
由于模组管理博主真的觉得内容比较多,而且还麻烦,所以单开一个章节来说
1.了解模组文件位置
这个模块是为了先简单了解模组文件在我们电脑上的存放位置,待会需要用到。
我们在库中按照以下步骤打开本地文件存放位置

点击mods文件,这里保存了一部分模组文件。D:\InstallDir\steam\steamapps\common\Don't Starve Together\mods

另外还有一个目录也保存了我们下载的模组文件D:\InstallDir\steam\steamapps\workshop\content\322330

这里的数字ID就是对应的模组,其中大部分文件其实保存在workshop/content/322330 这个路径下的(这里的322330是饥荒的游戏ID)
这里拿一个模组举例一下,这里框出来的就是模组的ID,每个模组的ID都不同,是唯一的。如图,这个模组的相关文件就保存在3383078008这个文件夹里。

大家看到这个肯定也有点懵,这光有数字我也不知道模组具体是干啥的。这里推荐一个模组,这个模组可以让我们在游戏里模组界面看到每个模组的ID,这样方便我们后续的操作。

如图,启用后每个模组都会显示自己的ID。

2.服务器模组下载
在了解完以上内容后,我们需要知道饥荒服务器模组配置的两种方式。
2.1 自动下载
第一种方式,需要我们自行更改服务器的标注文件。比如我们需要添加简易存储这个模组,我们就需要复制它的ID 3383078008 然后修改这个文件,在这个文件里加入这两行代码,先不说如果模组多了,一个一个添加很麻烦,其次,交给它自动下载还会出现下载失败的问题。
所以,博主不推荐自动下载这个方式

2.2 手动导入
如上我们了解到模组文件存放的位置,我们可以把模组文件手动上传到服务器,这样可以确保模组是正常的。
我们加入了show folder模组后,我们直接新建一个文本文档来记录我们需要服务器下载的模组ID以及一个简短的介绍

如下图所示,博主主打一个饱荒,不亏待自己,加的模组比较多,大家自行选择需要加入的模组和ID记录即可

注意啊 我们只需要记录服务器模组即可,本地模组不需要导入到服务器上。
接下来 找到每个模组的存放位置,把文件复制。这里博主推荐是创建一个文件夹保存这些模组文件,待会导入到服务器时,一次性就可以全部导入进去,并且这个以后如果去新服务器上部署时,也不需要再一个一个模组的找,只需要将这个给文件夹里的内容导入到服务器。

创建好后,我们就可以开始导入了,这里我们需要导入到dst-mods-import目录下。
其实如果导入一两个文件的话,使用阿里云的上传下载文件还挺合适,但是导入的文件比较多时,一个直观的UI界面还是会舒服很多。

等待导入完成,我们进入 12查看仓库模组,我们可以先选择重命名模组备注,给我们导入的模组添加一个简短的名字。

博主这里只示范一个,我们之前创建的txt文档就是在这里用到的。

注意这里的导入实际上还没有加载到游戏服务器上,我们还需要把模组导入到饥荒的专用服务器目录,这里这样做的原因是因为饥荒游戏服务器的模组目录格式为workshop-id的方式,我们如果从本机直接导入的话,还需要导入前重命名或者导入后进行重命名,很麻烦,并且在以后想对模组进行管理时还需要查每个id对应的是那个模组。
这里额外创建了一个dst-mods-import目录是为了我们可以备注模组名,注意这里增加备注后数字id不可以缺失,不然脚本导入的时候检测不到id就无法导入,我们后续需要添加模组就去找到模组文件夹放在这个目录即可。


导入成功后,我们可以再进行一轮模组完整性检查,一个模组文件夹里至少需要包含modmain.lua、modinfo.lua两个文件,如果导入后缺失这些文件,模组就不会正常加载。像博主这里,这几个没有导入成功的模组就是缺少文件,所以提醒大家,可以检查一下模组文件夹是否完整

选项12里的模组完整性就可以帮助我们发现是否有缺少文件的模组,我们后续再重新去本机找一下完整的模组文件夹导入过来就好。

到这里,如果仓库模组显示都是完整的话,我们就已经完成了模组的下载了。
3.服务器模组启用
上一步我们完成的是模组的导入,我们还需要决定一个存档开启哪些模组。
这里介绍一下饥荒模组开启与否的相关文件,我们本机的话就是D:\文档\Klei\DoNotStarveTogether\xxxxxxx\Cluster_1\Master这个目录

其中每个集群分为Master(地面)和Caves(洞穴)两个目录,每个目录下的modoverrides.lua文件负责管理模组的开启与否以及模组的一些参数。下图中,展示的就是我的一个文件,其中的数字id就是我们开启的对应模组,然后红框标注的是每个模组配置种必须包含的字段,其中enabled为true就是开启,为false就是关闭。

了解完这个后,我们就可以进入模组开启与否的管理了。
这里我推荐的方式就是,先在我们本机创建一个存档,勾选好需要启用的模组,并且调整好模组参数,比如阿比盖尔这个模组可以调整生命倍数等参数,这些我们如果自己修改文件的话,还需要了解哪个参数是修改生命倍数的,不太友好。
所以我们就在本地创建一个存档,启用好需要的模组,然后配置好参数,接着进入游戏,等待生成世界,当我们加入到游戏后,就可以退出了,我们只需要系统自己配置好的modoverrides.lua文件。以后我们如果需要修改模组开启与否以及参数时,可以就在这个存档进行修改,然后获取modoverrides.lua文件。

找到模组对应的文件夹获取modoverrides.lua文件即可,这里进入Master或者Caves都可以,两个目录都有模组配置文件,因为这两个分片创建时模组开启情况是一致的。


接着把这个文件上传到服务器上对应集群的Master和Caves目录下,这里需要上传到两个目录,需要注意,如果只上传到Master目录的话,会出现地面分片有模组,洞穴就没有模组了。
两个目录分别是你想配置模组的路径/root/.klei/DoNotStarveTogether/Cluster_1/Master/和/root/.klei/DoNotStarveTogether/Cluster_1/Caves/,这里我想配置的集群名字是Cluster_1,这里有差异。

完成这一步,我们的模组配置就好了,就可以进入游戏了开始你的饥荒之旅了。

五、工具箱其他功能简单介绍
以上内容是工具箱主要想解决的问题,服务器配置、模组配置,这些难啃的问题,以下内容是其他用户友好性功能介绍。

服务器模块主要就是管理游戏服务器的运行状态以及查看运行日志等,一般就是启动服务器和停止服务器功能用到比较多,日志一般是需要查看服务器运行出错的时候去查看。

这个模块就是方便再多个存档之间切换,并且有时候存档比较多了,不记得存档的游戏服务器名称、密码等可以选择 6查看当前集群信息,不需要去查找文件。

这个模块就是管理模组,15选项管理当前集群模组这里实现的功能就是把modoverrides.lua文件的enabled参数改为true或者false。

备份集群,恢复集群,显而易见,可以养成备份的习惯,方便以后如果出错了需要恢复。不过这个存档功能在游戏里也可以实现,在控制台输入c_save()也可以进行备份,c_rollback()可以恢复到上一个存档的状态。

系统这个模块,一般执行完22初始化后就配置好了,一般不使用。
能看到这里的人真的很有耐心呀,给你点个赞,笔者如果有表达失误的地方请谅解,有不懂得可以加我私信我,希望我的博文可以帮助到大家。
六、常见问题与一站式解决方法
一、初始化相关问题
问题1:执行22一键初始化,提示Please use force_install_dir before logon!,服务端文件夹缺失dontstarvetogether_dedicated_server
原因:旧版脚本SteamCMD命令参数顺序错误,下载失败
解决:
- 直接复制这条完整修复命令在服务器终端运行:
/root/steamcmd/steamcmd.sh +force_install_dir "/root/dontstarvetogether_dedicated_server" +login anonymous +app_update 343050 validate +quit
- 等待下载完成,重新打开工具箱即可识别服务端;
- 新版本脚本已修复该参数顺序,后续重新下载脚本无需手动执行。
问题2:初始化完成,找不到.klei文件夹
原因:.klei集群目录不会自动生成,必须创建/导入集群后才会出现
解决:工具箱选择9创建集群,创建完毕自动生成 /root/.klei/DoNotStarveTogether。
问题3:初始化执行apt安装依赖时报权限不足
原因:登录账号不是root
解决:阿里云ECS默认root账号登录;如果是普通用户,执行sudo -i切换root后再运行工具箱。
问题4:初始化下载SteamCMD/服务端速度极慢、卡住不动
解决:
- 更换国内服务器节点;
- 手动上传完整
dontstarvetogether_dedicated_server压缩包至/root目录解压,跳过下载步骤。
二、集群/开服启动相关问题
问题1:启动服务器,界面洞穴永久显示「初始化世界」,但游戏能正常进服
现象说明:仅界面显示BUG,洞穴分片实际已经完全加载成功,不影响联机;
彻底修复:下载最新版工具箱脚本覆盖,新版本增加日志二次校验逻辑,该显示问题已完全修复。
问题2:启动/重启完成,弹出「服务器启动超时」提示,但房间能搜到
原因:模组过多、世界初始化耗时超过120秒;
解决:
- 忽略提示直接进游戏,不影响游玩;
- 减少大型模组,重启服务器缩短加载时间;
- 查看5号日志功能,排查模组报错。
问题3:启动成功,游戏大厅搜不到服务器
四大排查步骤(按顺序)
- 缺少cluster_token.txt:集群文件夹放入官网下载的token文件,文件名不能写错;
- 云服务器安全组没放行端口:阿里云/腾讯云后台入方向放行UDP 10999、10998;
- 集群
cluster.ini内offline_cluster=false,不能改为true; - 服务器本地防火墙未放行,工具箱18号功能重新执行防火墙配置。
问题4:服务器启动几秒自动闪退,进程直接消失
排查
- token失效/内容多空格换行:重新去官网下载新token;
- 模组冲突/损坏:15号管理集群模组,全部临时禁用重启测试;
- 端口被占用:工具箱10修改集群端口,更换11000、11001等备用端口。
问题5:停止服务器后,主菜单依旧显示运行中
原因:旧脚本状态检测仅读取历史日志;
解决:更新新版工具箱,状态检测优先判断游戏进程,关闭后立刻刷新状态。
问题6:重启服务器需要手动按回车,不能全自动启停
解决:使用最新版脚本,3号重启功能内置静默停止逻辑,停止后自动跳转启动界面,无需人工确认。
问题7:Ctrl+C跳过等待,日志持续刷屏污染菜单
解决:更新新版脚本,实时日志会自动清理后台tail进程,退出后清空界面。
三、模组相关问题
问题1:模组导入后,服务器不加载模组
- 模组文件夹名称格式错误,必须包含
数字(如3383078008_简易储物); - 模组缺少
modinfo.lua/modmain.lua:12号模组仓库完整性检查,删除损坏模组重新上传; - Master、Caves两个modoverrides.lua都要开启模组,不能只改地面。
问题2:本地存档模组正常,服务器进图报错Lua Error
原因:本地和服务器模组文件不一致;
解决:不要使用steam自动下载模组,按照教程手动完整上传模组文件夹到dst-mods-import导入。
问题3:批量导入模组提示文件夹不存在
解决:工具箱12模组仓库功能,会自动生成dst-mods-import文件夹,把模组放入该目录再执行13导入。
问题3:模组已放置的特有物品丢失以及模组数据,比如田园物语的牧场工作台和传送和复合按钮的记录等等
注意:这个问题无法解决,这个就是存档的模组数据无法正常迁移的问题,需要重新制作或者标点
四、存档/备份相关
问题1:恢复备份后存档没变
原因:备份包内集群名和当前集群不一致;
解决:恢复时确认备份对应的集群名称,恢复完成后切换到对应集群。
问题2:服务器运行中备份,存档缺失物资
原因:游戏运行时文件写入不完整;
解决:备份前先2号停止服务器,再执行16备份。
五、网络/云服务器专属问题
问题1:能搜到房间,但是连接超时、进不去
- 云安全组UDP端口全部放行;
- 工具箱19执行网络优化,重启服务器;
cluster.ini中pause_when_empty=false(无人时不暂停服务器)。
问题2:联机延迟高、频繁卡顿掉线
解决
- 服务器选择和你本地地理位置接近的节点(比如武汉选杭州);
- 工具箱19执行UDP网络优化;
- 集群tick_rate保持30,不要调低。
问题3:SSH连接服务器断开,游戏服务器一起关闭
解决:工具箱使用screen后台托管,只要2号正常停止,关闭SSH不影响游戏;如果直接关闭终端,用3号重启恢复。
六、脚本运行基础报错
问题1:执行bash dst-toolbox-v2.sh提示无权限
解决:终端执行
chmod +x dst-toolbox-v2.sh
问题2:脚本中文乱码
解决:服务器安装中文语言包
apt install language-pack-zh-hans
问题3:菜单方向键无响应、乱码
解决:使用Termius、阿里云自带终端,不要使用老旧Xshell工具。
七、通用万能排查步骤(任何异常都可以按这个顺序)
- 选择5查看实时日志,日志内会打印Lua/模组/端口错误;
- 3号重启服务器,清空临时检测日志,重置状态判定;
- 模组全部临时关闭,排除模组冲突;
- 检查云服务器安全组UDP端口是否全部放行;
- 下载最新版工具箱脚本覆盖旧文件,修复已知显示/逻辑BUG。
更多推荐

所有评论(0)