前言

本来已经在国外的服务器上搭建了饥荒服务器,但是今天在朋友的推荐下买了京东云的年末促销58块一年的2c2g。既然如此就再配置一遍吧,刚好可以写一个全流程的博客。

参考教程:Steam饥荒联机版多人服务器搭建全解析 – 2-1 阿里云Linux系统构建云服务器 - 哔哩哔哩

首先你需要下载安装好steamcmd,然后用steamcmd来下载和更新DST服务器程序。

注意:你的服务器可能被防火墙限制了流量访问,请开放你的端口(饥荒服务器默认10888和10999)

DST存档

首先找到你的本地DST存档,如果你想要在服务器上添加mod,先在你的本地存档中加入相应的服务器mod,并且配置好mod的语言,数值等,以防之后改起来麻烦。然后根据我贴的b站教程配置好你的存档设定。

steamCMD配置

参考文档:SteamCMD - Valve Developer Community

创建steam用户,并且设置密码

1
2
sudo useradd -m steam
sudo passwd steam

进入home文件夹

1
2
sudo -u steam -s
cd ~

用包管理器下载的失败尝试

不知道为啥按照官方文档的教程没法下载成功,只能手动下载。

安装steamcmd

1
2
3
4
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd

输入sudo add-apt-repository multiverse的时候提示如下错误

1
steam is not in the sudoers file.  This incident will be reported.

这时候需要将steam用户加入sudo组,首先回到root用户,然后输入

1
sudo usermod -aG sudo steam

然而显示

1
E: Package 'steamcmd' has no installation candidate

说明无法通过包管理器下载,只能手动下载了。

手动下载

安装依赖

1
sudo apt-get install lib32gcc-s1

创建一个steamcmd文件夹然后进去

1
2
mkdir ~/steamcmd
cd ~/steamcmd

下载并解压

1
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

DST服务器配置

在steamcmd文件夹输入

1
./steamcmd.sh +force_install_dir ~/dst +login anonymous +app_update 343050 validate +quit

以上命令的意义为

  • 进入steamcmd

  • 强制指定下载文件夹

  • 匿名登陆

  • 下载DST服务器程序

  • 退出steamcmd

我的建议是不要一口气全部输进去,一个一个指令来比较稳当。

尝试运行服务器程序:

1
./dontstarve_dedicated_server_nullrenderer

报错了:

1
error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory

遇到这个错误,参考我的上一篇博客:

ubuntu系统配置饥荒联机版服务器踩坑经历 | Europa Superman ‘s blog

然后尝试安装i386版本的时候发现如下错误:

1
E: Unable to locate package libcurl4-gnutls-dev:i386

解决方法:

1
2
sudo dpkg --add-architecture i386
sudo apt-get update

搞定。

编写启动脚本:

1
2
3
cd ~/dst/bin/
echo './dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Master' > dst_overworld.sh
echo './dontstarve_dedicated_server_nullrenderer -console -cluster MyDediServer -shard Caves' > dst_caves.sh

首次运行:

1
2
3
4
sh dst_overworld.sh
sh dst_caves.sh
# 删除无用文件
rm -rf ~/.klei/DoNotStarveTogether/MyDediServer/*

上传存档文件和配置文件,具体参考我贴的b站教程

1
2
3
4
5
6
7
8
# 移动到需要存放世界配置文件的目标路径
cd ~/.klei/DoNotStarveTogether/MyDediServer/
# 解压缩刚刚上传的Cluster_1.zip
unrar x Cluster_1.rar
# 将Cluster_1中的文件全部移出至 ./MyDediServer 目录下
mv ./Cluster_1/* ./
# 删除空Cluster_1文件夹
rm -r ./Cluster_1

完成。

配置mod

1
2
cd ~/dst/mods
vim dedicated_server_mods_setup.lua

在里面添加ServerModSetup(“创意工坊ID”)即可。

启动服务器

建议在steam用户下启动服务器

1
2
3
4
5
6
7
cd ~/dst/bin
screen -S world
sh ./dst_overworld.sh


screen -S cave
sh ./dst_caves.sh