登录|我要入营|使用QQ帐号登录
首页 > 饥荒
发帖|
看4306|回0|收藏
驰网飞飞 看全部
2025-4-16 17:26:03
前言
代码直接复制我这里的就行,文件名最好也别改,如果友友是零基础,我这里提醒一下,代码指令是一行一行执行的,多行的不要一次性全部复制

一、租用云服务器
关于饥荒联机服务器配置推荐参考上一篇文章,云服务器租用好后可以通过Xshell、Putty等SSH工具远程连接,在下载中心可下载

二、安装依赖
安装服务器所需steam和饥荒的依赖
用有sudo权限的用户登录服务器,一般直接用root用户就行

代码:

  1. sudo add-apt-repository multiverse
  2. sudo dpkg --add-architecture i386
  3. sudo apt update
  4. sudo apt install libstdc++6 libgcc1 libcurl4-gnutls-dev:i386 lib32z1

代码:

  1. sudo apt update
  2. sudo apt install software-properties-common
  3. sudo apt update
注意:有些源里可能没有libcurl4-gnutls-dev,需要直接安装:

代码:

  1. cd /usr/lib/
  2. ln -s libcurl.so.4 libcurl-gnutls.so.4

如果一会启动饥荒服务器时报错:

代码:

  1. error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
说明依赖项没有装好,最好把上一步也做了防止出现该问题

三、安装SteamCMD和饥荒联机版
创建steamcmd文件夹

代码:

  1. mkdir ~/steamcmd
  2. cd ~/steamcmd
下载、解压并启动steamcmd

代码:

  1. wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
  2. tar -xvzf steamcmd_linux.tar.gz
  3. ./steamcmd.sh
输入左侧出现“steam”说明steamcmd启动成功

接着,安装饥荒联机版

代码:

  1. force_install_dir ../dontstarvetogether_dedicated_server
  2. login anonymous
  3. app_update 343050 validate
  4. quit
app_update 343050 validate就是去steam中下载饥荒联机服务器的命令,需要等待一会,当执行完成后输入quit退出steam服务

四、创建服务器存档
这里需要使用到FileZilla工具,简单理解为一个系统间服务器传输文件的工具,到官网下载,网上也有使用教程

打开饥荒联机版


饥荒联机版服务器搭建Linux(Ubuntu20.04)

创建世界,具体想设置什么自己调一下,洞穴记得勾选,模组也根据自己需求选上,创建好世界开始后加载到如下选人物页面就完成了

饥荒联机版服务器搭建Linux(Ubuntu20.04)


在服务器中创建存档的文件夹

代码:

  1. mkdir -p ~/.klei/DoNotStarveTogether/Cluster_1
在本地电脑中的C://User/xxx/文档/klei/DoNotStarveTogether文件夹下,找到你刚才创建的饥荒存档,上传到服务器的/.klei/DoNotStarveTogether/Cluster_1这个文件夹里面(上面创建的),具体操作一会会用FileZilla实现


饥荒联机版服务器搭建Linux(Ubuntu20.04)

回到饥荒联机版主页面,获取服务器token

饥荒联机版服务器搭建Linux(Ubuntu20.04)

依次选择账号游戏

饥荒联机版服务器搭建Linux(Ubuntu20.04)

进入

饥荒联机版服务器搭建Linux(Ubuntu20.04)

复制令牌,记得是全部

在本地电脑,还是刚刚游戏存档的位置,创建cluster_token.txt文件,记事本打开,把刚刚复制的令牌粘贴进去

饥荒联机版服务器搭建Linux(Ubuntu20.04)

该目录下创建cluster_token.txt文件

饥荒联机版服务器搭建Linux(Ubuntu20.04)

保存

复制自己的Klei用户ID,一会用来创建管理员权限

饥荒联机版服务器搭建Linux(Ubuntu20.04)

复制灰色的ID

饥荒联机版服务器搭建Linux(Ubuntu20.04)

设置管理员权限

设置服务器密码、人数等

饥荒联机版服务器搭建Linux(Ubuntu20.04)

自行设置

五、把设置好的存档传入服务器
使用FileZilla

饥荒联机版服务器搭建Linux(Ubuntu20.04)

连接服务器
输入密码,密码是你在服务器给root设置过的密码

饥荒联机版服务器搭建Linux(Ubuntu20.04)

输入密码,提示什么都点确定

饥荒联机版服务器搭建Linux(Ubuntu20.04)

连接成功

饥荒联机版服务器搭建Linux(Ubuntu20.04)

此图右侧为拖拽完毕后的结果

六、设置启动脚本
编写服务器中启动饥荒服务器的脚本

根目录下,创建并设置脚本文件

代码:

  1. cd ~
  2. vim boot.sh
把如下代码粘贴到刚创建的boot.sh

代码:

  1. #!/bin/bash

  2. steamcmd_dir="$HOME/steamcmd"
  3. install_dir="$HOME/dontstarvetogether_dedicated_server"
  4. cluster_name="Cluster_1"
  5. dontstarve_dir="$HOME/.klei/DoNotStarveTogether"

  6. function fail() {
  7.     echo Error: "$@" >&2
  8.     exit 1
  9. }

  10. function check_for_file() {
  11.     if [ ! -e "$1" ]; then
  12.         fail "Missing file: $1"
  13.     fi
  14. }

  15. cd "$steamcmd_dir" || fail "Missing $steamcmd_dir directory!"
  16. check_for_file "steamcmd.sh"
  17. check_for_file "$dontstarve_dir/$cluster_name/cluster.ini"
  18. check_for_file "$dontstarve_dir/$cluster_name/cluster_token.txt"
  19. check_for_file "$dontstarve_dir/$cluster_name/Master/server.ini"
  20. check_for_file "$dontstarve_dir/$cluster_name/Caves/server.ini"
  21. check_for_file "$install_dir/bin"
  22. cd "$install_dir/bin" || fail
  23. run_shared=(./dontstarve_dedicated_server_nullrenderer)
  24. run_shared+=(-console)
  25. run_shared+=(-cluster "$cluster_name")
  26. run_shared+=(-monitor_parent_process $$)
  27. run_shared+=(-shard)
  28. "${run_shared[@]}" Caves | sed 's/^/Caves: /' &
  29. "${run_shared[@]}" Master | sed 's/^/Master: /'
注意:代码粘贴完毕后按“:”,然后输入“wq”,回车,便可保存并退出

该设置中的启动方式为64位服务器,想启动32位的如下修改

饥荒联机版服务器搭建Linux(Ubuntu20.04)

修改这两行
如下:

代码:

  1. cd "$install_dir/bin64" || fail
  2. run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)

设置boot.sh权限

代码:

  1. sudo chmod u+x boot.sh

饥荒服务器还剩下最后模组mods部分,下面我单独放一个模块说明

七、设置饥荒服务器模组mods
模组设置和启用耗费了我想当长的时间,希望通过这篇专栏友友们可以顺利避坑,解决问题

尽管上面我们把本地创建添加模组后的游戏存档通过FileZilla传入了服务器中,但也会可能会导致饥荒服务器可以正常游玩后却没有模组被启用,解决方法如下:

本地的饥荒存档目录下,进入到Master,用记事本打开modoverrides.lua文件,如下圈出的数字为steam创意工坊的模组编号,这个文档因为在游戏中生成过了,所以指令都添加好了,重点是这些数字,我这里四个分别代表四个模组,都复制下来

Caves文件夹中也有modoverrides.lua文件,该步骤的意义就是获取模组编号,友友们也可以在steam创意工坊中通过网页连接自行获取,效果一致

饥荒联机版服务器搭建Linux(Ubuntu20.04)

模组编号

重中之重:

饥荒联机版服务器搭建Linux(Ubuntu20.04)
该文件会在服务器启动是被调用

记事本打开此dedicated_server_mods_setup.lua,有一些注释,都没用,全部删掉即可

按如下方式编辑:你用几个就写几行
ServerModSetup(模组编号)

饥荒联机版服务器搭建Linux(Ubuntu20.04)

到此,饥荒服务器与模组设置完毕。如果想要新添加模组,我的建议是重新在主机饥荒联机版中生成,然后替换Caves和Master文件夹中的modoverrides.lua文件,还要再重复上述步骤,dedicated_server_mods_setup.lua里添加对应模组编号。

八、开放端口
服务器搭建好了,端口不开放,其他小伙伴们还是进不来的

UDP协议开放10888、10998、10999

TCP和UDP协议开放8767、27017

饥荒联机版服务器搭建Linux(Ubuntu20.04)

九、启动饥荒服务器
到根目录,也就是boot.sh所在的目录,运行下面的代码,启动服务器

代码:

  1. cd ~
  2. nohup ./boot.sh>root.log 2>&1 &
如果报错error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file:或者其中有‘libcurl-gnutls.so.4’一类的报错,那是依赖没有装好,回到上面重新装一下

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

代码:

  1. tail -f root.log
有这些提示就代表启动成功了


饥荒联机版服务器搭建Linux(Ubuntu20.04)

十、关闭服务器
服务器启动后会一直运行,玩家都不在会暂停,关闭服务器需要找到服务器pid,然后kill掉即可,再想启动还是上述命令

代码:

  1. ps -ef | grep don
  2. kill 服务器pid
饥荒联机版服务器搭建Linux(Ubuntu20.04)

要kill的PID是上面图片中圈出来的,服务器在退出会执行一些方法,建议不要用kill -9强制杀死


十一、服务器性能排查
在ubuntu系统中可以使用top或者htop命令查看服务器资源使用情况

饥荒联机版服务器搭建Linux(Ubuntu20.04)

这里使用的是top命令,可以看到当前CPU负载是8.1%,内存还剩366.5+671.9=1038.4MB,如果CPU负载长期高于80%,内存少于100MB,那么卡顿很可能就是因为服务器资源不足,建议少加载些MOD,不要养太多生物,打扫一下地面掉落物。

十二、其它
1、修改服务器名称和密码
服务器的名称的名称和密码在.klei/DoNotStarveTogether/Cluster_1/cluster.ini 文件中,修改后重启即可

饥荒联机版服务器搭建Linux(Ubuntu20.04)

2、更新服务器到最新版本
每次饥荒联机版更新后都需要同步更新服务器,不同版本之间不能在一起玩,而且搜索不到房间

这里推荐一个查询饥荒服务器的网址,如果你在这个网址上能搜到自己的服务器,但是其他人搜不到,那应该就是版本不同导致的。
饥荒网页版服务器列表

代码:

  1. # 登录steamcmd
  2. cd /steamcmd
  3. ./steamcmd
  4. # 执行命令(更新命令和安装命令一样)
  5. steam> force_install_dir ../dontstarvetogether_dedicated_server
  6. steam> login anonymous
  7. steam> app_update 343050 validate
  8. steam> quit
可以将上面的更新命令编写成脚本方便以后执行,步骤如下:

在steamcmd.sh文件的同级目录创建脚本文件update.sh,复制下面的命令到脚本中后保存

代码:

  1. #!/bin/bash

  2. ./steamcmd.sh +force_install_dir ../dontstarvetogether_dedicated_server +login anonymous +app_update 343050 validate +quit
赋予脚本执行权限

代码:

  1. sudo chmmod u+x update.sh
以后更新饥荒服务器直接运行 ./update.sh

3、服务器卡顿可能原因排查
导致玩家在服务器上卡顿的原因有很多,比如

· 玩家到服务器连接不稳定
· 服务器CPU负载过高 或 内存不足
· 存在优化较差的MOD 或 相互不兼容

1)连接是否稳定可以使用ping命令

代码:

  1. ping xxx.xxx.xxx.xxx -t

4、MOD问题
可以上传一个纯净存档(不开任何MOD)试试,如果不卡顿再一个个关掉MOD尝试,没啥太好的办法。

感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员!

服务器大本营

Powered by Discuz! X3.4

首页|简易版|触屏版|电脑版