Linux 搭建饥荒专属服务器
腾讯云的服务器都快过期了还没杂用,感觉血亏。在过期前搭个饥荒服务器玩玩吧~
需要用到的:
- 腾讯云
- linuxgsm
- termius

安装gsm
跟着官方文档走,没发生什么意外:
安装依赖
sudo dpkg --add-architecture i386; sudo apt update; sudo apt install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates binutils bc jq tmux lib32gcc1 libstdc++6 libstdc++6:i386 libcurl4-gnutls-dev:i386新建账户
因为脚本不允许 root 下使用,所以需新建一个用户:adduser dstserver // 添加账户 passwd dstserver // 修改密码
su - dstserver // 切换账户下载并安装 gsm
wget -O linuxgsm.sh https://linuxgsm.sh && chmod +x linuxgsm.sh && bash linuxgsm.sh dstserver./dstserver install安装时会提示输入 Token,你登录 https://accounts.klei.com/account/info 后在这里添加新的服务器,复制输入生成的 Server Token。
服务器设置
vim /home/dstserver/.klei/DoNotStarveTogether/Cluster_1/cluster.ini
[GAMEPLAY]
game_mode = endless # 游戏模式
max_players = 8 # 最大玩家人数
pvp = false # pvp开关
pause_when_empty = true # 没人在线时暂停世界
vote_enabled = true # 投票开关(投票T人,投票重置世界)
[NETWORK]
lan_only_cluster = false # 只允许本地局域网加入开关
offline_cluster = false # 离线游戏
cluster_description = '0.0' # 服务器简介
cluster_name = 'My World' # 服务器名称
cluster_intention = cooperative # 服务类型,cooperative、social等
cluster_password = 123456 # 服务器密码
tick_rate = 30 # 帧刷新频率
connection_timeout = 120000 # 掉线等待时间,单位毫秒
whitelist_slots = 1 # 白名单个数
enable_autosaver = true # 天亮自动保存
server_save_slot = 1
[MISC]
console_enable = true # 是否开启控制台
max_snapshots = 6 # 最大快照數
[SHARD]
shard_enabled = true # 是否多世界
bind_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)
master_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)
master_port = 10888 # 端口
cluster_key = rain # 主从世界连接密码
[STEAM]
steam_group_only = false # 是否只允许同steam组的人加入
steam_group_id = 2222222 # steam组ID
steam_group_admins = true # steam组员自动成为管理员
地图设置
当然这里可以使用默认的,也可以在本地选择需要的配置新建后把配置复制过来。
vim /home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Master/leveldataoverride.lua
开启 MOD
把 mod 添加至dedicated_server_mods_setup.lua 服务器会自动下载,但启用还需在 modoverrides.lua 中配置。
下载 MOD
vim /home/dstserver/serverfiles/mods/dedicated_server_mods_setup.lua
填写格式有两种,一种是把合集里的都加上 ServerModCollectionSetup("379114180"),一种单个添加 ServerModSetup("378160973")。括号里的数字是打开创意工坊 url 的后缀。
形式如下:
ServerModSetup("345692228") --"Minimap HUD"
ServerModSetup("347079953") --"Display food values"
ServerModSetup("351325790") --"Geometric Placement"
ServerModSetup("367546858") --"Chinese Language Pack"
ServerModSetup("375850593") --"Extra Equip Slots"
ServerModSetup("375859599") --"Health Info"
ServerModSetup("376333686") --"Combined Status"
ServerModSetup("378160973") --"Global Positions"
ServerModSetup("444438334") --"DJPaul's Sort Inventory"
ServerModSetup("458587300") --"Fast Travel"
ServerModSetup("458940297") --"Food Values - Item Tooltips (Server and Client)"
ServerModSetup("462434129") --"Restart"
ServerModSetup("556027744") --"SUMMON BIGFOOT( With Old Bell)"
ServerModSetup("572538624") --"Chinese Plus"
ServerModSetup("623749604") --" Storeroom"
ServerModSetup("928706300") --"To Do Chores"
ServerModSetup("949822556") --"Egg Pain Together"
如果一些 mod 下载缓慢,也可以直接把 mod 文件直接下载或上传至 ~/serverfiles/mods,文件夹格式如:workshop-345692228。
https://t.vvwall.com 该网站可根据 ID 直接下载 mod。
配置并启用 MOD
vim ~/.klei/DoNotStarveTogether/Cluster_1/Master/modoverrides.lua
配置如果自己写很麻烦,还是在本地新建世界,并且配置好需要的 mod 后,把配置文件复制过来更方便。
本地的配置文件在下面路径找找:
- Windows
Documents\Klei\DoNotStarveTogether - Linux
~/.klei/DoNotStarveTogether - MacOS
~/Documents/Klei/DoNotStarveTogether
配置文件例:
return {
["workshop-345692228"] = { enabled = true },
["workshop-347079953"] = { enabled = true },
["workshop-351325790"] = { enabled = true },
["workshop-367546858"] = { enabled = true },
["workshop-375850593"] = { enabled = true },
["workshop-375859599"] = { enabled = true },
["workshop-376333686"] = { enabled = true },
["workshop-378160973"] = { enabled = true },
["workshop-444438334"] = { enabled = true,
configuration_options =
{
keybind = 103,
maxLights = 2,
backpackCategory = "food"
}
},
["workshop-458587300"] = { enabled = true },
["workshop-458940297"] = { enabled = true },
["workshop-462434129"] = { enabled = true },
["workshop-556027744"] = { enabled = true },
["workshop-572538624"] = { enabled = true },
["workshop-623749604"] = { enabled = true },
["workshop-928706300"] = { enabled = true },
["workshop-949822556"] = { enabled = true }
}
启动服务
这时候就已经可以启动服务了。
~/dstserver start
~/dstserver c //查看日志 报错找原因
开启地洞
默认配置是没有地洞的,在我想要开启地洞的的时候踩了一堆坑。
我这里的方式是在一个机器下部署地表世界和地下世界。也就是 机器上有 1 个 cluster,
cluster 包含了 Master(地表) 和 Cave(地底) 两个 shard。
1.修改默认配置
先查看下当前配置
~/dstserver details
修改从 github 上下载下来的_default 配置
vim ~/lgsm/config-default/config-lgsm/dstserver/_default.cfg
将servername 一行注释掉
#servername="dst-server-{shard}"
2.配置地洞
首先我们需要新建另一个script 来启动地洞,linuxgsm.sh 新建后会多出来个 dstserver-2.
~/linuxgsm.sh dstserver
修改自动创建的配置文件 ~/lgsm/config-lgsm/dstserver/dstserver-2.cfg
先抄一份默认的文件
cat _default.cfg >> dstserver-2.cfg
修改部分
# Installation Variables
sharding="true"
master="false"
shard="Caves"
cluster="Cluster_1"
cave="true"
修改之前地表的配置文件 ~/lgsm/config-lgsm/dstserver/dstserver.cfg
# Installation Variables
sharding="true"
master="true"
shard="Master"
cluster="Cluster_1"
cave="false"
修改地表服务配置 ~/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini
[SHARD]
is_master = true
[NETWORK]
server_port = 11000
[STEAM]
authentication_port = 8768
master_server_port = 27018
添加地底服务配置 ~/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini
[SHARD]
is_master = false
name = Caves
[NETWORK]
server_port = 11001
[STEAM]
authentication_port = 8769
master_server_port = 27019
添加地底地图 ~/dstserver/.klei/DoNotStarveTogether/Cluster_1/Caves/worldgenoverride.lua
return {
override_enabled = true,
preset = "DST_CAVE",
misc = {
world_size = "huge"
}
}
修改 ~/.klei/DoNotStarveTogether/Cluster_1/cluster.ini
[SHARD]
shard_enabled = true
把地表的 modoverrides.lua复制一份到地底文件夹。
现在 Cluster_1 文件夹如下:
/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/
├── Caves
│ ├── modoverrides.lua
│ ├── server.ini
│ └── server_log.txt
├── cluster.ini
├── cluster_token.txt
└── Master
├── modoverrides.lua
├── server.ini
├── server_log.txt
└── worldgenoverride.lua
3. 启动
现在可以把地表地底都启动了
~/dstserver start
~/dstserver-2 start
遇坑
https://docs.linuxgsm.com/game-servers/dont-starve-together
我开始跟着文档做,然而怎么改都是只有一个 Master ,无法使用地洞 Cave 的配置。
有关 gsm 配置的官方文档:
https://docs.linuxgsm.com/configuration/linuxgsm-config
https://docs.linuxgsm.com/configuration/game-server-config
根据官方文档,配置的加载顺序为 _default.cfg>common.cfg>instance.cfg
也就是先是下载github下来的默认配置,然后是游戏的所有实例的公共配置,最后是某个实例配置。
但是如果直接新建服务,默认 _default.cfg 中 shard 是 Master,然后 servername="dst-server-{shard}"。
所以无论你怎么修改,所有的dstserver,dstserver-2,dstserver-3 使用的都是默认的 dstserver-master 配置。
参考
饥荒联机版独立服务器搭建踩坑记录
Linux 上搭建饥荒联机版 Don't Starve Together服务器
wiki/多人版饑荒獨立伺服器
Steam饥荒Linux(CentOS)服务端专房搭建
评论
发表评论