跳转到内容

饥荒联机服务器搭建

搭建过的服务器1

Terminal window
Operating System: Ubuntu 24.04 LTS
Kernel: Linux 6.8.0-40-generic
Architecture: x86-64

参考链接 安装ossfs 1.0

Terminal window
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.6_ubuntu22.04_amd64.deb
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi ossfs_1.91.6_ubuntu22.04_amd64.deb

执行ossfs —version命令查看ossfs版本信息,出现如图所示提示信息,证明安装成功。

默认配置文件在配置完成后挂载Bucket时无需指定配置文件,您可以同时配置多条Bucket相关信息在挂载Bucket时使用。

配置文件路径:默认配置文件为/etc/passwd-ossfs。

配置文件格式:$bucket_name:$access_key_id:$access_key_secret

请执行以下命令,将Bucket和对应的AccessKey信息写入/etc/passwd-ossfs中,并将文件权限设置为640,完成默认配置文件创建。

Terminal window
echo bucket-test-1:AAAI************:AAA8x************************* > /etc/passwd-ossfs
echo bucket-test-2:BBBI************:BBB8x************************* >> /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

挂载方式有很多,阿里云OSS目前处于V1签名升级到V4签名阶段,所以原有磁盘挂载方式使用V1签名,迁移到V4比较麻烦,所以使用命令方式进行挂载。 参考链接 V1签名升级为V4签名

Terminal window
mkdir -p /jihuang/.klei/DoNotStarveTogether
ossfs jihuangbk /jihuang -o url=http://oss-cn-hongkong.aliyuncs.com -o sigv4 -o region=cn-hongkong

参考文档 搭建饥荒服务器(2024.3更新) 饥荒联机版(Don’t Starve Together)

先安装steam和饥荒服务器需要用到的依赖,

Terminal window
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libstdc++6 libgcc1 libcurl4-gnutls-dev:i386 lib32z1

创建steamcmd文件夹

Terminal window
mkdir ~/steamcmd
cd ~/steamcmd

下载 steamcmd程序

Terminal window
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

解压steamcmd_linux.tar.gz文件

Terminal window
tar -xvzf steamcmd_linux.tar.gz

启动steamcmd

Terminal window
./steamcmd.sh

如果上面没出啥问题的话,将会进入steam服务,接下来控制steam下载饥荒联机版

前面的steam> 不需要输入,只是说明你在steam服务中

Terminal window
force_install_dir ../dontstarvetogether_dedicated_server
login anonymous
app_update 343050 validate

在服务器上直接创建新地图的话后续配置会比较麻烦,一般都是在Windows上先创建地图,然后找到地图文件上传到服务器中。

Terminal window
mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1

这里只是告诉服务器要订阅或者说要下载哪些MOD,是否在地图中启用MOD在其它文件中(后面会讲)

Terminal window
cd /dontstarvetogether_dedicated_server/mods
vim dedicated_server_mods_setup.lua

.klei/DoNotStarveTogether/Cluster_1/Master/modoverride.lua就是这个地图的MOD配置,如果订阅了新MOD,一定要到这里添加配置,不然MOD不会生效。 Caves中也有一个modoverride.lua文件,记得一起修改。

Terminal window
cd ~
vim boot.sh

把下面的命令粘贴到boot.sh中

#!/bin/bash
steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="Cluster_1"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"
function fail() {
echo Error: "$@" >&2
exit 1
}
function check_for_file() {
if [ ! -e "$1" ]; then
fail "Missing file: $1"
fi
}
cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
check_for_file "steamcmd.sh"
check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
check_for_file "$install_dir/bin"
cd "$install_dir/bin64" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'

赋予boot.sh执行权限

Terminal window
sudo chmod u+x boot.sh
Terminal window
vim up.sh
#!/bin/bash
# 切换到 steamcmd 目录
cd ~/steamcmd
# 执行更新脚本
./update.sh
# 查找与 "don" 相关的进程并终止其父进程
parent_pid=$(ps -ef | grep 'dontstarve_dedicated_server_nullrenderer_x64' | grep -v grep | awk '{print $3}' | head -n 1)
if [ -n "$parent_pid" ]; then
kill $parent_pid
fi
# 返回到根目录
cd ~
# 启动 boot.sh 脚本并重定向输出
nohup ./boot.sh > /root/root.log 2>&1 &
timestamp=$(date +%Y%m%d_%H%M)
tar -czf /jihuang/.klei/DoNotStarveTogether/Cluster_1-${timestamp}.tar.gz /root/.klei/DoNotStarveTogether/Cluster_1
Terminal window
sudo chmod u+x up.sh

创建更新脚本

Terminal window
cd /root/steamcmd
vim update.sh
#!/bin/bash
./steamcmd.sh +force_install_dir ../dontstarvetogether_dedicated_server +login anonymous +app_update 343050 validate +quit
Terminal window
sudo chmod u+x update.sh

到根目录,也就是boot.sh所在的目录,运行下面的代码

Terminal window
nohup ./boot.sh>root.log 2>&1 &

执行后饥荒服务器会在后台运行,可以通过下面这个命令查看输出的日志

Terminal window
tail -f root.log

能看到下面这样的输出就是启动成功了 alt text

因为是后台运行,关闭服务器需要先找到服务器的PID,然后用kill命令杀死

Terminal window
ps -ef | grep don
Terminal window
kill