4.5 KiB
| title | date | updated | url | categories | tags | ||
|---|---|---|---|---|---|---|---|
| Docker搭建DST饥荒游戏专用服务器 | 2021-07-15 10:14:59.049 | 2023-06-16 22:22:42.255 | /archives/dstfordocker |
|
|
几个云大厂新用户活动白嫖了几个轻量服务器哈哈,Github上看到有人做了游戏服务器镜像,非常方便,拿过来run一下,记录一下搭建过程,写的比较简洁,适合对Linux有一点点了解或者爱折腾的同学
当前环境为Ubuntu18.04,1核2G,阿里云ECS
拉取镜像
拉取镜像
docker pull jamesits/dst-server
启动容器
docker run -v ${HOME}/.klei/DoNotStarveTogether:/data --name Cluster -d -p 10999-11000:10999-11000/udp -p 12346-12347:12346-12347/udp -it jamesits/dst-server:latest
修改游戏配置文件
启动容器后查看日志会发现报错,没关系,这是因为缺少一些配置
以下为游戏文件所在路径
~/.klei/DoNotStarveTogether/DoNotStarveTogether/Cluster_1
cluster_token.txt
这个token需要自行去生成,打开游戏后,点击账户>游戏>饥荒联机版的游戏服务器,生成一个token令牌,类似于下图的字符串,把它复制下来写入到cluster_token.txt中
或者
也可以复制网址https://accounts.klei.com/并打开,使用你的steam账号登录后去生成token

Caves
打开游戏新建一个档,配置好世界和mod,进入游戏,选人物时退出。打开你刚刚建的那个档的游戏文件,文件夹名字就是cluster_x,生成的档是第一个x就为1。把cluster_x中的Caves文件夹中的leveldataoverride.lua和modoverrides.lua文件复制到服务器.klei文件夹对应的Caves文件夹里,并且删除掉服务器Caves里的worldgenoverride.lua文件

Master
与Caves文件夹类似,打开cluster_x,把Master中的leveldataoverride.lua和modoverrides.lua文件复制到docker容器中的Master文件夹里,并且,同样删除掉worldgenoverride.lua文件

mods
使用vim打开dedicated_server_mods_setup.lua文件,再打开cluster_x中的modoverrides.lua文件,把mod的标识(就是那串数字)按照下面图片的格式写入到dedicated_server_mods_setup.lua文件中

cluster.ini
这个文件是配置专用服务器的一些基本信息
cluster_name 服务器名称
cluster_description 服务器备注
cluster_password 服务器密码
cluster_language = zh 服务器语言(zh中文,en英语)
PVP 游戏模式是否开启PVP
max_players 房间可以容纳的人数限制
如果你不知道其它配置的作用,就不要改动,只修改上述的参数就可以了

常用命令
暂停服务器
docker stop Cluster_1
重启容器(重启需要一点时间大概一分钟左右完成,可以查看日志)
docker restart Cluster_1
查看日志(Ctrl+C退出)
docker logs -f --tail 20 Cluster_1
备份服务器(备份路径/usr/local/klei.tar.gz)
tar -zcvf /usr/local/klei.tar.gz /root/.klei/
我遇到的一些问题,希望对你有帮助
- 游戏更新或mod更新导致了一些问题,重启容器就会自动更新
- 服务器进不去或者搜不到可以尝试重启容器再尝试下
- 发现在游戏内制作物品时皮肤无效,重启容器再试下
- 在重启容器时查看日志发现更新进度非常缓慢,可以尝试暂停容器并rm掉,重新启一个容器。如果还是非常缓慢,个人猜测可能是因为更新发布的游戏文件还没有同步至最近的节点,可以过一段时间重试重启试下
- 我有尝试过把本地存档迁移至服务器端,但是出现了一些奇怪的问题,"例如只听到猎狗叫声,却不出现猎狗",这个没有太想深究
