注:操作有风险,请自行备份好数据,本教程仅供参考。
一.参考(建议交叉比对)
1. 官网-Steam 命令行版客户端
2. 教程-多人版饥荒独立服务器
3. 教程-饥荒联机太卡?搭建饥荒独立服务器解决
4. 教程-Linux中的screen命令使用
5. 官网-《饥荒:联机版》的游戏服务器-配置
6. 官网-Apps · SteamDB
linux用户: | steam |
SteamCMD文件夹 | /home/steam/Steam |
饥荒主文件夹 | /home/steam/dontStarveTogether |
饥荒数据文件夹 | /home/steam/dSTData |
饥荒配置文件夹 | /home/steam/dSTData/dSTConfig |
二.软件安装及配置流程
a.安装 SteamCMD
# 以root用户身份创建 steam 用户
useradd -m steam
# 进入其主文件夹
cd /home/steam
# 安装依赖库
yum install glibc.i686 libstdc++.i686 SDL2.i686
yum install libcurl.i686 libcurl-devel.i686
# 安装tmux 和 screen 以简化服务器管理
yum install tmux screen -y
# 以 root 用户身份升级至 steam 用户
su - steam
# 为 SteamCMD 创建目录并切换至该目录
mkdir ~/Steam && cd ~/Steam
# 下载并解压缩适用于 Linux 的 SteamCMD
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
b.运行/配置 SteamCMD, 安装饥荒服务器
cd ~/Steam
./steamcmd.sh
# 匿名登录,下载大多数游戏服务端,你可以选择匿名登录
login anonymous
# 设置你的应用安装目录(可选,一般不需要)
force_install_dir <路径>
# 默认存储库: /home/steam/Steam/steamapps/common
# 安装饥荒服务器
app_update 343050 validate
quit
c.建立软连接, 修复-缺少关键的组件libcurl-gnutls.so.4
ln -s /home/steam/Steam/steamapps/common/"Don't Starve Together Dedicated Server" ~/dontStarveTogether
cd ~/dontStarveTogether/bin/
ln -s /usr/lib/libcurl.so.4 lib32/libcurl-gnutls.so.4
d.创建启动脚本
# 设置永久存储的根目录(-persistent_storage_root /home/steam/dSTData)
# 指定目录加载保存和设置数据(-conf_dir dSTConfig)
# 指定世界地图目录(-cluster World1)
# 默认: ~/.klei/DoNotStarveTogether
# 设定: ~/dSTData/dSTConfig
cd ~/dontStarveTogether/bin/
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/dSTData -conf_dir dSTConfig -cluster World1 -shard Master" > master_start.sh
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/dSTData -conf_dir dSTConfig -cluster World1 -shard Caves" > cave_start.sh
chmod +x master_start.sh cave_start.sh
e.配置游戏服务器存档设置:
在官网配置游戏服务器, 设置并下载地图压缩文件(MyDediServer.zip), 解压并重命名为World1, 上传至[ 饥荒配置文件夹 ]
f.启动主地图/洞穴服务器
cd ~/dontStarveTogether/bin/
screen -S master
./master_start.sh
screen -S caves
./cave_start.sh
# 查看改服务是否启动
netstat -nlp |grep :10889
# 关闭服务器
kill -9 [PID]
三.可选操作
a.在Steam客户端中连接游戏服务器(当游戏内部搜索不到服务器时)
查看游戏库->饥荒联机版->(右键)属性->启动选项, 输入
+connect IP:Port +password "***"
# 请根据实际情况 替换IP/Port/密码 !
b.配置mod(请参照其它教程)
cd ~/dontStarveTogether/mods
vim dedicated_server_mods_setup.lua
ServerModSetup("1207269058")
ServerModSetup("1418746242")
ServerModSetup("347079953")
ServerModSetup("356930882")
ServerModSetup("358749986")
ServerModSetup("362175979")
ServerModSetup("367546858")
ServerModSetup("374550642")
ServerModSetup("375850593")
ServerModSetup("375859599")
ServerModSetup("378160973")
ServerModSetup("380423963")
ServerModSetup("458587300")
ServerModSetup("458940297")
ServerModSetup("466732225")
ServerModSetup("501385076")
ServerModSetup("569043634")
ServerModSetup("604761020")
ServerModSetup("623749604")
ServerModSetup("661253977")
ServerModSetup("666155465")
ServerModSetup("786556008")
c.配置管理员
# 创建token的那位用户默认为管理员,不需要再在adminlist.txt里面添加
cd ~/dSTData/dSTConfig/World1
vim adminlist.txt
d.更新游戏服务器
cd ~/Steam
./steamcmd.sh
login anonymous
app_update 343050 validate
quit
e.Screen相关操作
# 列出当前所有的session
screen -ls
# 新建session(名为master)
screen -S master
# 回到session
screen -r master
# 暂离session
ctrl+a d
# 关闭session
# seesion外部
screen -X -S master quit
# seesion内部
exit
# 强制关闭
ctrl+a k