饥荒联机版云服务器搭建全攻略
由于笔者在玩饥荒联机版时和朋友联机老是出现卡顿的情况然后在尝试过很多种方式局域网联机、内网穿透都不能稳定联机很影响游戏体验在听说了搭服务器这个方法后就去尝试了我先尝试了本地搭建服务器由于电脑性能或是其他原因联机效果也不是很理想所以想去搭建云服务器结果就是可以长期稳定联机网络延迟很低几乎没有卡顿。以下就分享一下完整的搭建过程希望可以帮助到大家。资源链接GitHub - ttjiejie/DST-tools · GitHubdst-toolbox-v2.sh一、云服务器准备我们需要先去国内提供云服务器的平台注册账号这里有很多选择阿里云、华为云、腾讯云等等这里推荐阿里云由于阿里云新用户完成实名认证后会送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\Dont 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_clusterfalse不能改为true服务器本地防火墙未放行工具箱18号功能重新执行防火墙配置。问题4服务器启动几秒自动闪退进程直接消失排查token失效/内容多空格换行重新去官网下载新token模组冲突/损坏15号管理集群模组全部临时禁用重启测试端口被占用工具箱10修改集群端口更换11000、11001等备用端口。问题5停止服务器后主菜单依旧显示运行中原因旧脚本状态检测仅读取历史日志解决更新新版工具箱状态检测优先判断游戏进程关闭后立刻刷新状态。问题6重启服务器需要手动按回车不能全自动启停解决使用最新版脚本3号重启功能内置静默停止逻辑停止后自动跳转启动界面无需人工确认。问题7CtrlC跳过等待日志持续刷屏污染菜单解决更新新版脚本实时日志会自动清理后台tail进程退出后清空界面。三、模组相关问题问题1模组导入后服务器不加载模组模组文件夹名称格式错误必须包含数字如3383078008_简易储物模组缺少modinfo.lua/modmain.lua12号模组仓库完整性检查删除损坏模组重新上传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_emptyfalse无人时不暂停服务器。问题2联机延迟高、频繁卡顿掉线解决服务器选择和你本地地理位置接近的节点比如武汉选杭州工具箱19执行UDP网络优化集群tick_rate保持30不要调低。问题3SSH连接服务器断开游戏服务器一起关闭解决工具箱使用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。
