本文最后更新于:2024年6月16日 下午
游戏:饥荒联机版(Steam)
测试服务器:Ubuntu22.04 2核2G内存 3M带宽(京东云)
本次搭建是在完全纯净的ubuntu22.04系统上进行的,所以如果您保持一致,按照步骤即可搭建。
本文主要讲解搭建饥荒服务器,为了文章不臃肿,如何ssh连接远程服务器请自行前往浏览器或者b站学习,一般都有十分方便的软件。
本文中有不少链接,如果您对某一部分(例如steamcmd或者tmux)困惑或者感兴趣可以点击跳转,但是可能由于版本老旧存在问题,请勿盲目相信任何文章,例如steamcmd链接内容全面但是在安装方面lib32gcc1已经弃用但是文章未更新。
!!由于steamcmd目前需要32位依赖,本次搭建需要添加i386架构,如果服务器用于重要业务,请谨慎操作!!
一、服务器配置
由于我只测试了 2核2G内存3M带宽 服务器配置,所以在配置选择方面我主要是根据在本服务器上的体验和其他教程博客得到的估计总结,如果您想知道您需求下的准确配置,可以私信询问b站的各位饥荒区up主。
我采用 2核2G内存3M带宽 配置,地面大小为中,洞穴大小为中,添加了八个史诗血量,Show Me,全球定位等辅助型mod,未添加大型内容方面的mod。
当服务器中人数为3人时,服务器性能显示大多为黄色,有时为绿色,网络大多数时候均为绿色,偶尔有一人为黄色,整体体验有时会有点点小卡顿,但是并不特别影响游戏体验。3人时内存使用率为**80%,cpu使用率为60%**。
但是本次测试只运行到第一个冬季初,后期可能内存占用率等会上升。因此,对于想要不添加许多大型mod或者只有五六人的小型服务器,推荐配置 2核4G内存 (618京东云价格在250左右一年)。
二、搭建
1.安装 steamcmd
steamcmd 是一个命令行版本的 Steam 客户端。它的主要用途是在一个命令行界面的 Steam 客户端上安装及更新各种可用的专用服务端。
通过ssh连接服务器后,在服务器终端以root身份执行以下命令(# 带头的都是注释,不是要执行的命令):
出现以下内容便说明安装好了
2.安装 dontstarvetogether_dedicated_server
在steamcmd中运行以下命令,如果您已经退出,在终端执行 steamcmd
即可进入:
目前饥荒服务器底层部分安装完毕,相当于打好了地基
3.导入地图配置
- 在创建游戏创建一个新世界(配置什么的按你正常玩来)
- 在成功进入游戏后退出,在文件管理系统中找到该地图存档的文件夹,如果这个存档是第一个创建的文件夹名就是 Cluster_1 ,第二个就是 Cluster_2 ,以此类推。
如果你的电脑有全局搜索工具,搜对应的文件夹名称即可,我的是ubuntu系统,文件夹在 ~/.kelei/DoNotStarveTogether/1231618362/
下
- 将找到的 Cluster_n 这个文件夹通过 SFTP 等方法上传至服务器
- 在饥荒游戏主界面点击左下角的 帐号 ,进入 Klei Account 界面后点击上方栏中的 游戏
点击 《饥荒:联机版》的游戏服务器 按钮,复制服务器的序列号(如果没有请先添加新服务器)
- 添加序列号
ps:如果序列号是从玩家a复制的,那么玩家a就默认是管理员
- 编写执行脚本
以下是 start.sh 文件中的内容,您要注意的只是最前面的四个赋值语句
steamcmd_dir steamcmd可执行文件所在的位置
install_dir 安装dontstarvetogether_dedicated_server的位置
cluster_name 保存地图内容的文件夹名
dontstarve_dir 保存地图内容的文件夹的保存位置,即 parent_path
如果不知道位置,可以用 find / -name "file_or_dir_name"
搜索
保存退出后执行
此时,你若在终端执行 ./start.sh
,即运行 start.sh 脚本,待加载完毕,你就可以在大厅搜索到你的房间了!!!!
但是,还是不够的,因为你会发现房间是纯净档,mod不见了?!并且当你关闭ssh连接,运行的脚本会被强制中断!!服务器将断开连接!!
同时,如何添加管理员?如何设置白名单?如何禁止投票?
别急,都会在后文讲到
三、添加mod
如果你创建时勾选了mod,在 Cluster_n 文件夹(就是上文上传的那个文件夹)的 Master 文件夹下有个 modoverrides.lua 文件,其中内容类似:
这个是你勾选的mod的配置文件,例如第一个 workshop-1185229307 ,实际就是史诗血量mod,而 1185229307 就是该mod的ID号。
接下来 ,将进行添加mod操作:
接下来,打开你本地电脑的记事本,新建一个txt文件,对照着你的modoverrides.lua内容,一行一个ServerModSetup函数,函数内为mod的ID号。
比如我上文的lua内容,我的txt文件内容应该为:
lua中有两个mod,我勾选了两个mod,那么这就是两个ServerModSetup函数。
接着,复制txt文件内容,粘贴至刚刚打开的dedicated_server_mods_setup.lua文件
形如:
接着同样的,按 :wq 回车 保存退出
此时,若再去运行start.sh脚本,等待加载(由于要下载mod这次加载时间会较长),大厅搜索发现房间的mod加上了!
如果出现显示mod只有部分,那是因为下载mod失败(依旧是网络问题。。),重新运行脚本即可(一次不行就多几次),下载好了以后运行就不用这么麻烦了。
四、后台运行
还有一个困扰,如果我们关闭ssh连接,由于终端被关闭,运行在终端的start.sh脚本也被杀死,服务器强行退出。但是我们总不能一直连着ssh吧?为此,我们可以采用 tmux 这一命令行工具实现脚本的后台运行。(只要能后台运行即可,tmux使用方便,所以用它)
tmux更多内容
五、额外配置
更改以下配置最好先终止脚本,关闭服务器
1.用户Id
在配置之前,我们先了解如何获得Klei用户ID
在饥荒联机版游戏中,点击左下角 帐号 ,点击 弹出窗口上方 用户信息 ,你就可以看到你的 Klei用户ID 了
2.管理员
3.白名单
我开了一个服务器,有6个位置,但是每次我自己都挤不进去,这时就需要白名单了
打开 Cluster_n 下的 cluster.ini 文件,这个就是该档的基础配置文件,内容大致如下:
在 NETWORK 部分加入以下内容:
保存退出后,创建 whitelist.txt 文件,和管理员一样,你想给谁预留位置就一人一行他的科雷Id。
4.禁止投票
在 cluster.ini 文件的 GAMEPLAY 部分添加:
至此,便是Ubuntu服务器搭建饥荒联机服务器的全部内容了,祝大家游戏愉快,欢迎指正和补充讨论!
参考文章:
教你用Ubuntu快速搭建饥荒服务器
饥荒服务器配置