一、环境搭建
安装运行环境
sudo apt update
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 lib32gcc-s1
sudo apt-get install lib32gcc1
二、steamcmd安装
mkdir steamcmd
cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
三、饥荒服务器安装
在安装steamcmd后运行文件夹下的steamcmd.sh文件随后输入force_install_dir /home/yujj/share/SteamLibrary/dstserver添加饥荒服务器的安装路径,然后进行登录login anonymous,anonymous表示匿名登录,你也可以用自己的账号进行登录,登录成功后运行app_update 343050 validate安装饥荒的服务端。代码如下:
steam>force_install_dir /home/yujj/share/SteamLibrary/dstserver
steam>login anonymous
steam>app_update 343050 validate
四、饥荒启动脚本
在运行饥荒服务器时先进行依赖包的软连接,应为在运行过程中会出现安装依赖包找不到的情况
cd /home/yujj/dstserver/bin/lib32
ln -s /usr/lib/libcurl.so.4 libcurl-gnutls.so.4
然后是克雷官方的服务器配置登录https://accounts.klei.com/account/game/servers?game=DontStarveTogether
点击添加新服务器,并点击配置,随后下载设置,
会有一个名为MyDediServer的压缩包文件,在用户目录下创建.klei/DoNotStarveTogether文件夹,将MyDediServer解压后放在该文件夹中,创建sh文件,并通过 nohup 饥荒.sh &进行后台运行,创建的sh文件如下所示:
#!/bin/bash
steamcmd_dir="/home/yujj/steamcmd" #steamcmd的安装路径
install_dir="/home/yujj/dstserver" #dstserver的安装路径
cluster_name="MyDediServer"
dontstarve_dir="/home/yujj/.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"
./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 validate +quit
check_for_file "$install_dir/bin64"
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 Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" -shard Master | sed 's/^/Master: /'


