Linux 搭建饥荒服务器指南
Linux 搭建饥荒服务器指南

问:为什么要用Linux Server而不是Windows创建饥荒服务器呢?
答:Linux Server没有图形界面,同样配置下比Windows更节省系统资源。这样就能把更多资源留给饥荒服务器。另外Linux可以用ssh连接,当你熟悉代码后会发现比Windows更高效。
本指南的目的是在Linux上创建带洞穴的饥荒服务器,多层世界的指南将在以后说明。
本指南基于Ubuntu 16.04 64位制作,推荐使用此Linux发行版本或Ubuntu 18.04搭建服务器,以免不必要的麻烦
安装运行SteamCMD所需的依赖项
您需要为您的服务器安装一些软件包以让SteamCMD正常工作:
如果您使用的是Ubuntu 32位,那么就跳过这个步骤;如果您使用的Ubuntu 64位,请逐行执行以下代码以安装相关软件包
sudo dpkg --add-architecture i386
sudo apt-get update -y
sudo apt-get install lib32gcc1 -y
sudo apt-get install lib32stdc++6 -y
sudo apt-get install libcurl4-gnutls-dev:i386 -y
下载SteamCMD
请逐行执行以下代码
cd
mkdir steamcmd # steamcmd文件夹
mkdir dst # 饥荒主程序文件夹
cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar xzvf steamcmd_linux.tar.gz
现在您可以安装SteamCMD
请逐行执行以下代码
cd ~/steamcmd
./steamcmd.sh
login anonymous
force_install_dir ~/dst
app_update 343050 validate
quit
启动两个服务器(地面和洞穴)
您需要创建两个bash脚本(master.sh和caves.sh)来分别运行两个世界
我们先创建master.sh,逐行输入以下代码
cd ~/dst/bin
nano master.sh
./dontstarve_dedicated_server_nullrenderer -persistent_storage_root ~/klei -conf_dir DoNotStarveTogether -cluster Cluster_1 -shard Master
代码输入完毕,按组合键CTRL + X退出,然后再按Y保存编辑
然后,我们能再创建caves.sh,逐行输入以下代码
cd ~/dst/bin
nano caves.sh
./dontstarve_dedicated_server_nullrenderer -persistent_storage_root ~/klei -conf_dir DoNotStarveTogether -cluster Cluster_1 -shard Caves
代码输入完毕,按组合键CTRL + X退出,然后再按Y保存编辑
运行和停止两个服务器
以创建存档文件Master(地面)和Caves(洞穴)
地面的存档
请逐行执行以下代码
cd ~/dst/bin
chmod +x master.sh
./master.sh
当你在屏幕上看到Your Server Will Not Start字眼时,按组合键CTRL + C退出
洞穴的存档
请逐行执行以下代码
cd ~/dst/bin
chmod +x caves.sh
./caves.sh
当你在屏幕上看到Your Server Will Not Start字眼时,按组合键CTRL + C退出
为服务器创建cluster_token.txt
在你Windows PC上打开饥荒联机版游戏 -> 点击开始游戏 -> 点击账户信息 -> 点击最上面一排的游戏
-> 点击Don't Starve Together Servers -> 拉到最下面,随便输一个名字,点击添加新服务器
即可获取一串以pds-g开头的字符串,复制
然后逐行输入一下代码
cd ~/klei/DoNotStarveTogether/Cluster_1/
nano cluster_token.txt
把刚刚复制的字符串粘贴进去,按组合键CTRL + X退出,然后再按Y保存编辑
为两个服务器创建leveldataoverride.lua
leveldataoverride.lua代表生成世界的设置,你可以调整季节、怪物或生物群系以及更多
获取leveldataoverride.lua文件配置
- 打开Windows PC饥荒联机版游戏
- 按照您的喜好在第一个存档位置创建您的世界(需添加洞穴)
- 创建成功世界后退出游戏
- 打开您电脑中的该路径
C:\Users\XXX\Documents\Klei\DoNotStarveTogether
XXX为您电脑的用户名
- 打开该路径下的名字为数字的文件夹
- 打开
Cluster_1,里面会有Master和Caves文件夹,这两个文件夹里分别有一个leveldataoverride.lua文件
创建Linux上的leveldataoverride.lua
地面的leveldataoverride.lua
请逐行执行以下代码
cd ~/klei/DoNotStarveTogether/Cluster_1/Master/
nano leveldataoverride.lua
把刚刚上一步获取的Master的leveldataoverride.lua里的内容复制粘贴进来
按组合键CTRL + X退出,然后再按Y保存编辑
洞穴的leveldataoverride.lua
请逐行执行以下代码
cd ~/klei/DoNotStarveTogether/Cluster_1/Caves/
nano leveldataoverride.lua
把刚刚获取的Caves的leveldataoverride.lua里的内容复制粘贴进来
按组合键CTRL + X退出,然后再按Y保存编辑
创建并配置cluster.ini
执行代码
nano ~/klei/DoNotStarveTogether/Cluster_1/cluster.ini
将下面代码根据解释自定义后粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
[GAMEPLAY]
game_mode = endless
max_players = 8
pvp = false
pause_when_empty = true
[NETWORK]
lan_only_cluster = false
cluster_intention = cooperative
cluster_password = 123456
cluster_name = 服务器测试
cluster_description = 一起嗨起来
offline_cluster = false
cluster_language = zh
[STEAM]
steam_group_id = 35243410
steam_group_admins = false
steam_group_only = false
[MISC]
max_snapshots = 20
console_enabled = true
[SHARD]
shard_enabled = true
bind_ip=0.0.0.0
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass
注: game_mode 游戏模式,选项为
survivalendlesswilderness,分别对应生存无尽荒野模式 max_players 最大人数 pvp 开启PVP模式,选项为truefalsecluster_intention 游戏风格,选项为cooperativecompetitivesocialmadnesscluster_password 服务器密码 cluster_name 服务器名 cluster_description 服务器介绍 steam_group_id steam群组的id,如果不添加群组请留空 steam_group_admins 群组的管理也变成服务器的管理员,选项为truefalsesteam_group_only 只有群组成员才能加入,选项为truefalsemax_snapshots 最大存档天数,游戏默认只保存5天的存档
为两个服务器创建server.ini
地面的server.ini
执行代码
nano ~/klei/DoNotStarveTogether/Cluster_1/Master/server.ini
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
[NETWORK]
server_port = 10999
[SHARD]
is_master = true
[ACCOUNT]
encode_user_path = true
[STEAM]
master_server_port = 27018
authentication_port = 8768
洞穴的server.ini
执行代码
nano ~/klei/DoNotStarveTogether/Cluster_1/Caves/server.ini
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
[NETWORK]
server_port = 11000
[SHARD]
is_master = false
name = Caves
id = 11
[ACCOUNT]
encode_user_path = true
[STEAM]
master_server_port = 27019
authentication_port = 8769
为两个服务器添加mod
还记得上文的为服务器创建leveldataoverride.lua的方法吧?
为服务器添加mod的方法类似
获取modoverrides.lua文件配置
- 打开Windows PC饥荒联机版游戏
- 按照您的喜好在第一个存档位置创建您的世界(需添加洞穴),这是需添加mod,提前在创意工坊订阅好
- 创建成功世界后退出游戏
- 打开您电脑中的该路径
C:\Users\XXX\Documents\Klei\DoNotStarveTogether
XXX为您电脑的用户名
- 打开该路径下的名字为数字的文件夹
- 打开
Cluster_1,里面会有Master和Caves文件夹,这两个文件夹里分别有一个modoverrides.lua文件
创建Linux上的modoverrides.lua
地面的modoverrides.lua
请逐行执行以下代码
cd ~/klei/DoNotStarveTogether/Cluster_1/Master/
nano modoverrides.lua
把刚刚上一步获取的Master的modoverrides.lua里的内容复制粘贴进来
按组合键CTRL + X退出,然后再按Y保存编辑
洞穴的modoverrides.lua
请逐行执行以下代码
cd ~/klei/DoNotStarveTogether/Cluster_1/Caves/
nano modoverrides.lua
把刚刚获取的Caves的modoverrides.lua里的内容复制粘贴进来
按组合键CTRL + X退出,然后再按Y保存编辑
修改dedicated_server_mods_setup.lua以让服务器下载相应mod
输入代码
nano ~/dst/mods/dedicated_server_mods_setup.lua
在里面另起一行,输入你要添加的mod,格式如下:
ServerModSetup("375850593")
ServerModSetup("1438233888")
ServerModSetup("850494968")
ServerModSetup("666155465")
ServerModSetup("1185229307")
ServerModSetup("1595631294")
ServerModSetup("462434129")
每个mod一行,双引号中间的数字为对应mod的ID
获取mod的ID的方法:
方法一
打开之前获取的modoverrides.lua,里面的格式为
["workshop-375850593"]={ configuration_options={ }, enabled=true },
其中workshop后面的数字即为mod的ID
方法二
打mod的创意工坊页面,如https://steamcommunity.com/sharedfiles/filedetails/?id=501385076
链接中id=后面的就是mod的ID
安装screen
到这一步,您的饥荒服务器配置已经完成70%了
您会发现,运行master.sh或caves.sh后,一旦关闭终端,对应的世界也会关闭
这个时候,就需要screen了
安装screen
sudo apt-get install screen
screen命令详解请见另一篇文章:Linux Screen命令详解
为两个服务器制作脚本
启动脚本
地面世界的启动脚本
执行代码
nano ~/dst/bin/startmaster.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
screen -dmS m ~/dst/bin/master.sh
再执行代码
chmod +x startmaster.sh
洞穴的启动脚本
执行代码
nano ~/dst/bin/startcaves.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
screen -dmS c ~/dst/bin/caves.sh
再执行代码
chmod +x startcaves.sh
一键启动两个服务器的脚本
执行代码
nano ~/launch.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
#!/bin/sh
cd ~/dst/bin
sh startmaster.sh
sh startcaves.sh
echo '!!!THE SERVER IS STARTED!!!'
再执行代码
chmod +x launch.sh
一键重启两个服务器的脚本
执行代码
nano ~/restart.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
#!/bin/sh
screen -dr m -X -S quit
screen -dr c -X -S quit
sleep 10
cd ~/dst/bin
sh startmaster.sh
sh startcaves.sh
echo '!!!THE SERVER IS RESTARTED!!!'
再执行代码
chmod +x restart.sh
一键关闭两个服务器的脚本
执行代码
nano ~/shutdown.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
#!/bin/sh
screen -dr m -X -S quit
screen -dr c -X -S quit
sleep 10
echo '!!!THE SERVER IS SHUTED DOWN!!!'
再执行代码
chmod +x shutdown.sh
更新服务器的脚本
执行代码
nano ~/update.sh
将下面代码粘贴进去,并按组合键CTRL + X退出,然后再按Y保存编辑
#!/bin/sh
screen -dr m -p 0 -X stuff "\nc_save()\n"
sleep 10
screen -dr m -X -S quit
screen -dr c -X -S quit
sleep 10
mv ~/dst/mods/dedicated_server_mods_setup.lua ~/dst/mods/dedicated_server_mods_setup.lua.bak
~/steamcmd/steamcmd.sh +login anonymous +force_install_dir ~/dst +app_update 343050 validate +quit
mv ~/dst/mods/dedicated_server_mods_setup.lua.bak ~/dst/mods/dedicated_server_mods_setup.lua
sleep 10
cd ~/dst/bin
sh startmaster.sh
sh startcaves.sh
再执行代码
chmod +x update.sh
注:该脚本执行后会先关闭服务器,然后更新服务器,更新完毕后自动重启游戏
测试两个服务器
执行代码
sh ~/launch.sh
服务器就在后台启动了
查看服务器日志,看看服务器是否启动成功
输入代码
地面:
tail -fn 30 ~/klei/DoNotStarveTogether/Cluster_1/Master/server_log.txt
洞穴:
tail -fn ~/klei/DoNotStarveTogether/Cluster_1/Caves/server_log.txt
退出查看日志是按组合键
CTRL+C
如果看到Sim paused,说明服务器开启成功,打开游戏看看能不能连接上吧
至此服务器就创建完毕了
其他
添加管理员
如果您用的是自己的cluster_token创建服务器,那么默认您就是游戏管理员
如果您想添加其他的玩家为管理员,那么输入代码
nano ~/klei/DoNotStarveTogether/Cluster_1/adminlist.txt
在里面添加对应玩家的ID,一行一个玩家
重启服务器后生效
添加黑名单
同理,输入代码
nano ~/klei/DoNotStarveTogether/Cluster_1/blocklist.txt
在里面添加对应玩家的ID,一行一个玩家
重启服务器后生效
玩家ID可在服务器日志中查看,格式为
KU_开头
服务器创建模板
获取方法:
git clone https://gitee.com/jupitersh/dst.git
如未安装git,请先安装:
sudo apt-get install git
在服务器创建的过程中如果遇到问题,欢迎在下方留言
评论