本教程以 debian11 x64 系统安装
linux专服指steam,因为wegame专服只能在windows上运行
/etc/apt/sources.list
文件里
deb http://mirrors.huaweicloud.com/debian/ buster main添加好之后更新系统
apt update apt upgrade安装依赖
apt install lib32gcc1 libcurl4-gnutls-dev添加一个用户名为dst的用户,并切换
useradd -m dst su - dst
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结束进程
下载启动脚本,添加执行权限,放到/home/dst,重命名为run_dst.sh
wget https://accounts.klei.com/assets/gamesetup/linux/run_dedicated_servers.sh脚本内容:
#!/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 [ ! -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: /'
里面的"$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设置文件
删掉"/home/dst/.klei/DoNotStarveTogether"目录下默认存档Cluster_*
打开网站https://accounts.klei.com/ 并登录,点击“游戏”——“《饥荒:联机版》的游戏服务器”
群集名随便写,然后添加
添加好之后,点击“配置服务器”,根据自己需求填写,填好之后点击“下载设置”
解压之后打开 “cluster.ini”文件,记录“master_port = ”后面的端口号,然后再记录下Master和Caves目录下“server.ini”文件里"server_port =" 后面的端口号
3个端口一起添加到云服务器的防火墙,只添加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文件夹上传到服务器“/home/dst/.klei/DoNotStarveTogether”
打开游戏目录"/home/dst/dst_server/mods"
编辑“dedicated_server_mods_setup.lua”
去创意工坊找到mod id
按格式填写:
这是添加Mod id
ServerModSetup("1699194522")
这是添加合集id
ServerModCollectionSetup("1699194522")
关于Mod配置,可以在本地创建游戏,配置好之后生成存档,然后找到存档目录"Cluster_*\Master"下"modoverrides.lua"文件
上传到服务器"/home/dst/.klei/DoNotStarveTogether/MyDediServer/Master"目录
世界生成文件为leveldataoverride.lua可一并上传
洞穴为Caves,操作同上
最后添加管理员和黑白名单
在"/home/dst/.klei/DoNotStarveTogether/MyDediServer" 目录下新建adminlist.txt(管理员名单),blocklist.txt(黑名单),whitelist.txt(白名单)
adminlist.txt里面填写“Klei用户ID”,一行一个;可以在官方网站查看,或服务端日志("/home/dst/.klei/DoNotStarveTogether/MyDediServer/Master/server_log.txt")里查看
黑白名单填写Steam ID,server_log里可以查看
最后输入“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_dst.sh GuessMainPID=no WorkingDirectory=/home/dst/dst_server/bin64 Restart=always RestartSec=10s [Install] WantedBy=multi-user.target
刷新系统服务配置
systemctl daemon-reload查看服务状态
systemctl status dst设置开机启动
systemctl enable dst启动服务
systemctl start dst停止服务
systemctl stop dst重启服务
systemctl restart dst设置计划任务,定时重启,输入命令
crontab -e最下面输入
01 06 * * * systemctl restart dst每天6点01分重启服务
如果大厅界面延迟是3个问号,等一会就好了