系统环境
一个全新的 Debian 13 服务器
1 | root@DST:~# lsb_release -a |
1. 创建专用用户
不要直接用 root 跑 LinuxGSM。官方也明确指出,用 root 运行游戏服本身容易遇到权限问题。
使用 root 用户执行下面的命令:
1 | adduser dstserver |
sudo相关
普通用户可以使用 sudo 命令执行,如果提示 -bash: sudo: command not found 可以使用下面的命令解决
1 | # 切换到 root 用户 |
然后退出终端重新登录确认是否生效
1 | dstserver@DST:~$ sudo whoami |
然后更新环境,安装几个基础工具:
1 | sudo apt update |
2. 下载 LinuxGSM
1 | cd /home/dstserver |
这是 LinuxGSM 官方给 DST 的当前安装方式。
现在目录里应该出现:
1 | dstserver@DST:~$ ls |
3. 建立地面和洞穴两个实例
1 | cp dstserver dstserver-1 |
后面我们使用:
1 | dstserver-1 = 地面 Master |
首次运行后,LinuxGSM 会为不同实例生成各自配置;LinuxGSM 官方的多实例机制本身就是 “每个实例对应自己的脚本和 instance config” 。
4. 配置地面 Master
先执行一次:
1 | ./dstserver-1 |
LinuxGSM 会初始化相关文件。
配置一般位于:
1 | ~/lgsm/config-lgsm/dstserver/ |
先看看:
1 | ls ~/lgsm/config-lgsm/dstserver/ |
你应该能看到类似:
1 | _default.cfg |
不要修改 _default.cfg,因为 LinuxGSM 更新时可能覆盖它。官方推荐把自定义值放进实例自己的 .cfg。
编辑:
1 | vim ~/lgsm/config-lgsm/dstserver/dstserver-1.cfg |
加入:
1 | sharding="true" |
这几个参数就是 LinuxGSM 官方 DST 双分片示例给出的 Master 配置。
5. 配置洞穴
执行一次:
1 | ./dstserver-2 |
然后:
1 | vim ~/lgsm/config-lgsm/dstserver/dstserver-2.cfg |
加入:
1 | sharding="true" |
官方说明 cave=”true” 会让 LinuxGSM 在安装时自动给该 shard 生成洞穴世界配置。
这一步最好在执行 install 之前配置好。
因为 LinuxGSM 官方特别提醒:这些安装变量应该在 dstserver-1 / dstserver-2 install 前设置,尤其 cave 会影响世界生成文件。
6. 获取 Klei Token
DST 专服必须有 Klei Authentication Token 。
可以查看: LinuxGSM - DST Authentication Token
去 Klei Account 登录:
1 | accounts.klei.com |
创建一个 Dedicated Server Token。
在下一步安装时需要填入使用。
7. 安装两个实例
先安装地面:
1 | ./dstserver-1 install |
按照提示操作。
在 Cluster Token 的部分输入第六步获取的 Token
再安装洞穴:
1 | ./dstserver-2 install |
服务器文件实际上可以共享,因此不会简单复制两份完整 DST。
LinuxGSM 会通过 SteamCMD 自动下载安装。
8. 编辑 cluster.ini
编辑文件
1 | vim ~/.klei/DoNotStarveTogether/Cluster_1/cluster.ini |
例如:
1 | [GAMEPLAY] |
这里非常重要的是:
1 | [SHARD] |
否则 Master 和 Caves 会变成两个独立服务器,而不是同一个世界里的地面和洞穴。LinuxGSM 官方 DST 文档也特别指出这一点。
- 配置两个 shard 的端口
Master:
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1/Master
nano ~/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini
填:
[NETWORK]
server_port = 11000
[SHARD]
is_master = true
[STEAM]
authentication_port = 8768
master_server_port = 27018
LinuxGSM 官方示例也是 Master 使用:
server_port = 11000
authentication = 8768
master_server = 27018
洞穴:
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1/Caves
nano ~/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini
填:
[NETWORK]
server_port = 11001
[SHARD]
is_master = false
name = Caves
[STEAM]
authentication_port = 8769
master_server_port = 27019
LinuxGSM 官方示例给 Caves 使用不同的 11001 / 8769 / 27019,避免两个实例端口冲突。
- 检查洞穴世界配置
如果前面在安装前正确设置:
cave=”true”
LinuxGSM 应该已经自动生成:
~/.klei/DoNotStarveTogether/Cluster_1/Caves/worldgenoverride.lua
可以检查:
cat ~/.klei/DoNotStarveTogether/Cluster_1/Caves/worldgenoverride.lua
官方当前生成的配置类似:
return {
override_enabled = true,
preset = “DST_CAVE”,
}
LinuxGSM 文档明确说明,这个文件就是让 Caves 实例生成真正洞穴而非第二张地表地图的关键。
- 启动服务器
启动地面:
./dstserver-1 start
启动洞穴:
./dstserver-2 start
启动顺序其实无所谓,因为洞穴 shard 连不到 Master 时会自动重试。
查看状态:
./dstserver-1 details
./dstserver-2 details
LinuxGSM 的 details 会显示端口、配置路径、运行状态等信息。
- 看实时控制台
地面:
./dstserver-1 console
洞穴:
./dstserver-2 console
退出控制台:
Ctrl+B
然后按 D
不要按 Ctrl+C,因为可能直接终止服务器进程。LinuxGSM 官方文档也特别提醒了这一点。
- 常用管理命令
以后基本就是这些:
./dstserver-1 start
./dstserver-1 stop
./dstserver-1 restart
./dstserver-1 console
./dstserver-1 details
洞穴同理:
./dstserver-2 start
./dstserver-2 stop
./dstserver-2 restart
./dstserver-2 console
./dstserver-2 details
升级 DST:
./dstserver-1 update
强制 SteamCMD 更新:
./dstserver-1 force-update
验证服务器文件:
./dstserver-1 validate
备份:
./dstserver-1 backup
这些都是 LinuxGSM 自带的标准管理功能。
- 开放防火墙
如果启用了 UFW:
sudo ufw allow 11000/udp
sudo ufw allow 11001/udp
如果是阿里云、腾讯云、AWS、Oracle 等 VPS,还要在云服务器安全组里开放 UDP:
11000
11001
一般:
11000 → Master
11001 → Caves
15. 自动监控崩服
LinuxGSM 有 monitor 功能,可以检测服务器挂掉并重启。官方建议通过 cron 周期执行。
编辑:
crontab -e
例如:
*/5 * * * * /home/dstserver/dstserver-1 monitor > /dev/null 2>&1
*/5 * * * * /home/dstserver/dstserver-2 monitor > /dev/null 2>&1
这样每 5 分钟检查一次。
还可以自动检查更新:
*/30 * * * * /home/dstserver/dstserver-1 update > /dev/null 2>&1
LinuxGSM 官方 DST 页面本身也推荐使用 cron 执行 monitor 和 update。
评论