服务器大本营

 找回密码
 我要入营

QQ登录

只需一步,快速开始

查看: 335|回复: 0

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

[复制链接]

6万

敬重

749

主题

207

精华

管理员

积分
8453

启航之章进阶之印里程之碑突破之证飞跃之星蜕变之勋卓越之路龙年行大运

QQ
发表于 2025-4-16 17:26:03 | 显示全部楼层 |阅读模式

我要入营,结交更多好友,开启更多功能,轻松玩转服务器大本营!

您需要 登录 才可以下载或查看,没有账号?我要入营

x
前言
代码直接复制我这里的就行,文件名最好也别改,如果友友是零基础,我这里提醒一下,代码指令是一行一行执行的,多行的不要一次性全部复制

一、租用云服务器
关于饥荒联机服务器配置推荐参考上一篇文章,云服务器租用好后可以通过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)


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

饥荒联机版服务器搭建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)

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


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

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

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


依次选择账号游戏

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

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


进入

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

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


复制令牌,记得是全部

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

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

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


该目录下创建cluster_token.txt文件

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

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


保存

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

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

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


复制灰色的ID

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

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


设置管理员权限

设置服务器密码、人数等

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

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


自行设置

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

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

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


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

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

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


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

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

饥荒联机版服务器搭建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)

饥荒联机版服务器搭建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)


模组编号

重中之重:

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

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

该文件会在服务器启动是被调用

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

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

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

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


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

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

UDP协议开放10888、10998、10999

TCP和UDP协议开放8767、27017

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

饥荒联机版服务器搭建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)

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


十、关闭服务器
服务器启动后会一直运行,玩家都不在会暂停,关闭服务器需要找到服务器pid,然后kill掉即可,再想启动还是上述命令
  1. ps -ef | grep don
  2. kill 服务器pid
复制代码

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

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


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


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

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

饥荒联机版服务器搭建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)

饥荒联机版服务器搭建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尝试,没啥太好的办法。

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

一入IDC深似海,从此你我是良人!
您需要登录后才可以回帖 登录 | 我要入营

本版积分规则

点击直接加入[服务器大本营QQ频道]
滴!摸鱼时间到~
Loading...

QQ|Archiver|手机版|网站地图|服务器大本营 ( 赣ICP备2021009089号 )

GMT+8, 2025-5-2 13:20 , Processed in 0.067958 second(s), 29 queries , Gzip On.

Powered by 服务器大本营

© 2021-2023 联系飞飞

快速回复 返回顶部 返回列表