107 lines
4.5 KiB
Markdown
107 lines
4.5 KiB
Markdown
---
|
||
title: Docker搭建DST饥荒游戏专用服务器
|
||
date: 2021-07-15 10:14:59.049
|
||
updated: 2023-06-16 22:22:42.255
|
||
url: /archives/dstfordocker
|
||
categories:
|
||
- Docker
|
||
tags:
|
||
- Docker
|
||
---
|
||
|
||
> 几个云大厂新用户活动白嫖了几个轻量服务器哈哈,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
|
||

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

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

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

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

|
||
|
||
<br/>
|
||
|
||
## 常用命令
|
||
暂停服务器
|
||
```
|
||
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/
|
||
```
|
||
|
||
# 我遇到的一些问题,希望对你有帮助
|
||
1. 游戏更新或mod更新导致了一些问题,重启容器就会自动更新
|
||
2. 服务器进不去或者搜不到可以尝试重启容器再尝试下
|
||
3. 发现在游戏内制作物品时皮肤无效,重启容器再试下
|
||
4. 在重启容器时查看日志发现更新进度非常缓慢,可以尝试暂停容器并rm掉,重新启一个容器。如果还是非常缓慢,个人猜测可能是因为更新发布的游戏文件还没有同步至最近的节点,可以过一段时间重试重启试下
|
||
5. 我有尝试过把本地存档迁移至服务器端,但是出现了一些奇怪的问题,"例如只听到猎狗叫声,却不出现猎狗",这个没有太想深究
|
||
6.
|
||
|
||
<a href="https://github.com/Jamesits/docker-dst-server" target="_blank">镜像原作者jamesits/dst-server </a> |