Ubuntu64位饥荒联机版服务器部署 1、云服务器准备阿里云白嫖一个月操作系统选择Ubuntu的配置服务器防火墙添加10998和10999两个端口这两个端口分别是地上和地洞服务器设置root密码远程连接使用root账户登录初次登录要重置密码设置密码服务器配置好了2、安装steamcmd1、安装环境依赖sudo apt-get install libstdc6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386执行不成功是因为是64位系统需要启用对32位架构的支持再执行该命令启用32位架构sudo dpkg --add-architecture i386 sudo apt-get update2、安装steamcmdmkdir -p ~/steamcmd/ ## 创建文件夹 cd ~/steamcmd/ ## 进入文件夹 wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz ## 下载steamcmd_linux tar -xvzf steamcmd_linux.tar.gz ## 解压steamcmd_linux ./steamcmd.sh ## 运行 login anonymous ## 匿名登录 app_update 343050 validate ## 下载饥荒联机版 quit ## 安装完退出 cd ../ ## 回到根节点 mkdir -p ./.klei/DoNotStarveTogether/Cluster_1 ## 创建存档文件夹3、存档导入去克雷官网获取服务器tokenKlei Account有服务器token就复制一个没有就添加一个。在自己电脑游戏中创建一个存档设置世界添加模组生成世界不用进入查找自己生成的世界的文件夹一般在~\Klei\DoNotStarveTogether\548689568\Cluster_1在文件夹中新建一个txt文件 cluster_token.txt将之前复制的token贴过去使用工具将这四个文件上传至服务器之前创建的存档文件夹.klei/DoNotStarveTogether/Cluster_1推荐使用 MobaXterm 使用root账号登录防止出现文件权限问题。3、启动在根目录创建启动脚本 run_delicated_servers.shvim run_delicated_servers.sh添加以下内容#!/bin/bash steamcmd_dir$HOME/steamcmd install_dir$HOME/dontstarvetogether_dedicated_server cluster_nameCluster_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 ./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: /注意如果文件是在windows上创建的脚本文件run_delicated_servers.sh中存在 Windows 风格的换行符\r\n而 Linux 系统只支持 Unix 风格的换行符\n。这导致了脚本在执行时出现$\r的错误并且在某些行引发了语法错误。执行以下解决该问题sed -i s/\r// run_delicated_servers.sh为启动脚本文件添加权限chmod x run_delicated_servers.sh ## 添加 x 权限 ls -l run_delicated_servers.sh ## 确认权限执行脚本./run_delicated_servers.sh等服务器启动后一直等有一个sim pause弹出代表成功了CtrlC退出此时根节点中dontstarvetogether_dedicated_server 文件已存在4、添加mod进入到mods文件夹中此时还没有mod只有四个文件从自己电脑上拷贝mod上传到服务器根据 存档文件中/Master/modoverrides文件获取mod的序号这些就是启用的mod查找本机mod文件进入steam安装路径D:\install\steam\steamapps\workshop\content\322330饥荒的mod文件放在这里根据序号先在电脑上找个地方把他们复制进去。更改文件夹名称添加 workshop- 前缀。再将文件上传至服务器mods文件夹下5、修改启动脚本在脚本 run_delicated_servers.sh 中存在./steamcmd.sh force_install_dir $install_dir login anonymous app_update 343050 validate quit将该行注释掉使用以下命令重新启动服务 ,可在donotstarvetogether.log中查看日志nohup ./run_delicated_servers.sh donotstarvetogether.log 21 6、 浏览房间自己电脑登录游戏浏览游戏根据设置的房间名字查找。7、 部署方式更新# 饥荒联机版服务器开服 # 服务器版本 Ubuntu 22.04.5 LTS 2核4G ## 环境信息配置 agsl dpkg --add-architecture i386 apt update -y apt install libc6:i386 lib32gcc-s1 lib32stdc6 lib32z1 libsdl2-2.0-0:i386 screen wget unzip -y ## steam下载、解压、运行 agsl mkdir -p ~/steamcmd cd ~/steamcmd wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -zxvf steamcmd_linux.tar.gz ./steamcmd.sh ## 安装dst agsl force_install_dir ../dst_server login anonymous app_update 343050 validate quit ## 存档准备 agsl 准备存档Cluster_1 修改存档中/Cluster_1/cluster.ini bind\_ip0.0.0.0 添加Token文件/Cluster_1/cluster_token.txt 服务器创建存档文件夹 mkdir -p ~/.klei/DoNotStarveTogether/ 上传文件Cluster_1.zip并解压 cd /root/.klei/DoNotStarveTogether/ unzip Cluster_1.zip ## 模组添加 agsl 打开/Cluster_1/Master/modoverrides.lua获取创建的世界使用了哪些mod 将模组添加进dedicated_server_mods_setup.lua文件末尾一个mod一行 nano /root/dst_server/mods/dedicated_server_mods_setup.lua ServerModSetup(1234567890) ServerModSetup(1234567890) ServerModSetup(1234567890) 将本地文件/steam/steamapps/workshop/content/322330/中模组文件上传至/root/dst_server/mods/ unzip XXXmod.zip ## 创建地上地下世界启动脚本并赋予权限 agsl cat /root/master64.sh EOF #!/bin/bash cd /root/dst_server/bin64 export LD_LIBRARY_PATH../linux64:$LD_LIBRARY_PATH ./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Master EOF agsl cat /root/cave64.sh EOF #!/bin/bash cd /root/dst_server/bin64 export LD_LIBRARY_PATH../linux64:$LD_LIBRARY_PATH ./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Caves EOF agsl chmod x /root/master64.sh /root/cave64.sh ## 开机自启动设置 agsl //创建地上世界服务 nano /etc/systemd/system/dst-master.service [Unit] DescriptionDont Starve Together Master Server Afternetwork.target [Service] Typesimple Userroot WorkingDirectory/root/dst_server/bin64 ExecStart/root/master64.sh Restarton-failure RestartSec10 [Install] WantedBymulti-user.target agsl //创建地下世界服务 nano /etc/systemd/system/dst-cave.service [Unit] DescriptionDont Starve Together Cave Server Afternetwork.target dst-master.service [Service] Typesimple Userroot WorkingDirectory/root/dst_server/bin64 ExecStart/root/cave64.sh Restarton-failure RestartSec10 [Install] WantedBymulti-user.target agsl // 重载系统服务配置 systemctl daemon-reload // 设置开机自动启动 systemctl enable dst-master systemctl enable dst-cave // 现在手动启动测试 systemctl start dst-master systemctl start dst-cave // 查看服务状态 systemctl status dst-master systemctl status dst-cave // 停止服务 systemctl stop dst-master systemctl stop dst-cave // 重启服务 systemctl restart dst-master systemctl restart dst-cave // 实时查看运行日志 journalctl -u dst-master -f journalctl -u dst-cave -f