Don't Starve Together

Don't Starve Together

Not enough ratings
debian11安装64位饥荒linux服务端
By 无声飞雪
   
Award
Favorite
Favorited
Unfavorite
安装
为了安装lib32gcc1添加apt源
deb http://mirrors.huaweicloud.com/debian/ buster main
详情https://packages.debian.org/buster/lib32gcc1
另外如果你想用apt安装steamcmd,则可以在源后加上"non-free",本教程使用手动解压安装
安装依赖
apt update
apt install lib32gcc1 libcurl4-gnutls-dev
请自行添加sudo解决权限问题
添加用户,并切换
useradd -m dst
su - dst
下载安装steamcmd
mkdir ~/steamcmd
cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
下载游戏,查看依赖并尝试首次运行
./steamcmd.sh +login anonymous +force_install_dir ~/dst_server +app_update 343050 validate +quit
cd ~/dst_server/bin64
ldd dontstarve_dedicated_server_nullrenderer_x64
./dontstarve_dedicated_server_nullrenderer_x64
如无意外你会看到
Your Server Will Not Start
说明安装成功,按ctrl+c结束进程

下载官方启动脚本
https://accounts.klei.com/assets/gamesetup/linux/run_dedicated_servers.sh
设置root和执行权限,放到/home或/root下都行
脚本内容
#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/dontstarvetogether_dedicated_server"
cluster_name="MyDediServer"
dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

function fail()
{
echo Error: "$@" >&2
exit 1
}

function check_for_file()
{
if []; 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: /'
里面的"$HOME"是绝对路径"/home/dst"
"steamcmd_dir"是steamcmd安装目录
"install_dir"是游戏安装目录,改为"$HOME/dst_server"
"cluster_name"为存档目录名,默认为Cluster_1,这里设置为"MyDediServer"
"dontstarve_dir"为存档路径
上面4项根据自己实际情况改,如果按照教程没改过,只需要照上面的改动下"install_dir"就行
另外第29行,去掉validate(验证),改为
./steamcmd.sh +force_install_dir "$install_dir" +login anonymous +app_update 343050 +quit
如不去掉,则会重置mod设置文件
第36行"run_shared+=(-console)"删除,已被"cluster.ini"文件"console_enabled = true"选项替换
删掉"/home/dst/.klei/DoNotStarveTogether"目录下默认存档Cluster_*
初步安装完成,下一步配置
配置
配置
打开网站https://accounts.klei.com/ 并登录,点击“游戏”——“《饥荒:联机版》的游戏服务器”
群集名随便写,然后添加
添加好之后,点击“配置服务器”,根据自己需求填写,填好之后点击“下载设置”
解压之后打开 “cluster.ini”文件,记录端口,然后再记录下Master和Caves目录下“server.ini”文件里端口
一共7个端口,去云服务器的防火墙打开端口,tcp和udp都要添加,二条规则就行,端口之间逗号隔开
“cluster.ini”文件里可加上三行
[NETWORK]
whitelist_slots = 2
cluster_language = zh
[MISC]
max_snapshots = 6
“whitelist_slots = 2”白名单保留通道2
“cluster_language = zh”中文
“max_snapshots = 6”最大快照6
然后把MyDediServer里的4个文件上传到服务器“/home/dst/.klei/DoNotStarveTogether/MyDediServer”里
如果服务器没有MyDediServer目录直接新建
mod添加
打开安装目录"/home/dst/dst_server/mods"
编辑“dedicated_server_mods_setup.lua”
去创意工坊找到mod id
按格式填写
ServerModSetup("1699194522")
ServerModCollectionSetup("1699194522")
有的服务端mod有多项配置,可以在本地启用服务器mod,配置好之后生成存档,然后找到存档目录"Cluster_*\Master"下"modoverrides.lua"文件
上传到服务器"/home/dst/.klei/DoNotStarveTogether/MyDediServer/Master" 目录
如果有洞穴"/home/dst/.klei/DoNotStarveTogether/MyDediServer/Caves" 目录也得上传
最后可以在"/home/dst/.klei/DoNotStarveTogether/MyDediServer" 目录下新建adminlist.txt(管理员名单),blocklist.txt(黑名单),whitelist.txt(白名单)
里面填写“Klei用户ID”,一行一个;可以在官方网站查看,或服务端日志( "/home/dst/.klei/DoNotStarveTogether/MyDediServer/Master/server_log.txt" )里查看
最后输入“exit”切换回root用户
设置下存档目录权限
chown -R dst /home/dst/.klei
设置服务,开机启动,定时重启
在/etc/systemd/system下新建dst.service,权限644
内容如下
[Unit]
Description=DST Service
Documentation=DST Service
After=network.target nss-lookup.target

[Service]
User=dst
ExecStart=/home/dst/run_dedicated_servers.sh

[Install]
WantedBy=multi-user.target
这里的“/home/dst/run_dedicated_servers.sh”是下载好的run_dedicated_servers.sh文件路径
刷新服务配置systemctl daemon-reload
查看服务状态systemctl status dst
设置开机启动systemctl enable dst
设置计划任务,定时重启,输入命令
crontab -e
最下面输入"01 06 * * * systemctl restart dst"
每天6点01分重启服务

如果大厅界面延迟是3个问号,等一会就好了
所有服务器ping值数据存储在"DoNotStarveTogether\xxxxxxxxx\client_save\ping_cache"
ping值居然不是实时的,而是过几天才更新,这种设计不知道是谁想出来的

有问题,请留言;有帮助,请点赞。



1 Comments
奥术流年 8 Jun, 2022 @ 5:08am 
楼主你好,我的饥荒联机版一直好的,但是今天突然无法进入,源文件里打开,显示无法兼容,请问是怎么回事啊?