当前位置:   article > 正文

饥荒云服搭建教程_饥荒服务器搭建

饥荒服务器搭建

需要了解的一点点知识

饥荒云服搭建需要一些很重要的前提,你的服务器是什么操作系统的?

这里说的云服,指的是Linux操作系统。

Linux操作系统衍生系统虽然说基本没差,但是红帽系列和Debian系列最大的差距正是饥荒云服搭建最大的差距:安装软件包命令的不同!

我们搭建饥荒专服的思路:

  • 普通玩游戏(鼠标点击):安装steam或wegame平台 -> 下载饥荒联机版 -> 设置世界配置 -> 开始游戏
  • 专服开服(全部是命令):安装steamcmd客户端 -> 从steamcmd客户端下载饥荒联机版 -> 配置世界 -> 启动游戏

请添加图片描述

左边可以统称为红帽系列,右边可以统称为debian系列,所以安装软件时候需要区分自己是哪个操作系统


以下是正文

安装steamcmd客户端

steamcmd客户端可以理解为我们自己电脑里边下载的steam客户端软件,只不过在linux里边是命令行客户端,即steamcmd客户端。

如同我们正常玩饥荒,首先我们需要下载steam平台或者wegame平台,再从steam平台下载饥荒游戏,然后配置世界设置,开始游戏。我们云服专服搭建也是这个流程。

其实,安装steamcmd客户端在steamcmd官网都有给出,强烈建议移步官网看下官网是如何指导安装steamcmd客户端的。

授人以鱼不如授人以渔:https://developer.valvesoftware.com/wiki/SteamCMD

创建steam用户

为steamcmd客户端专门创建一个新用户可以更安全的执行

  1. 作为root用户,添加steam新用户(ubuntu建议指定shell即 -s /bin/bash)

    sudo useradd -m steam -s /bin/bash
    sudo passwd steam 
    
    • 1
    • 2
  2. 进入steam用户家目录

     su - steam && cd ~
    
    • 1
安装steamcmd客户端
自动安装
# Ubuntu/Debian
sudo apt install steamcmd

# RedHat/CentOS
sudo yum install steamcmd

# 自动安装会下载到/usr/games/steamcmd
# 为了方便管理我们移动steamcmd到steam用户的目录下
# 这里的命令是链接过去,相当于我们告诉/home/steam/steamcmd指向/usr/games/steamcmd
sudo ln -s /usr/games/steamcmd /home/steam/steamcmd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
手动安装

手动安装我们需要下载一些依赖(可以理解为steamcmd客户端运行需要的一些源代码)。

# 1.用上面命令自动安装的就不用再执行这里的命令了
# Ubuntu/Debian (x86-64)
sudo apt-get install lib32gcc1

# RedHat/CentOS (x86-64)
sudo yum install glibc.i686 libstdc++.i686

# 2.安装好依赖,我们就可以下载steamcmd压缩包了,此处命令相同
mkdir ~/Steam && cd ~/Steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这样我们就安装好了steamcmd客户端,接下来就是命令行的steam怎么下载软件并更新了。


下载饥荒专属服务器

我们已经安装好了steamcmd客户端,没错,上面自动安装的steamcmd和手动安装的steamcmd.sh文件就是。

# 1.启动steamcmd客户端
#   自动安装执行这个命令
cd ~ && steamcmd

#   手动安装执行这个命令
cd ~/Steam/ && ./steamcmd.sh

# 2.设置安装游戏目录(这里我把游戏放在/home/steam/dstserver/目录下)
steam> force_install_dir ~/dstserver

# 3.匿名登录steamcmd客户端
steam> login anonymous

# 4.下载游戏(343050是饥荒专服在steam上的App ID,查看方式见文档最下面)
steam> app_update 343050 validate

# 提示:实际上启动+设置目录+登录+下载都可以一气呵成
# 自动安装的执行
cd ~ && steamcmd +force_install_dir ~/dstserver +login anonymous +app_update 343050 +quit
# 手动安装的执行
cd ~/Steam && ./steamcmd.sh +force_install_dir ~/dstserver +login anonymous +app_update 343050 +quit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

这样我们就下载好游戏了。剩下最后就是配置游戏启动了。

配置游戏并启动

配置服务器令牌token

没有服务器令牌,我们是无法启动服务器的。服务器令牌谁的都可以,且可以保存很长时间不会失效,所以建议保存。用该令牌启动的服务器,令牌所属人为游戏管理员。

进入游戏界面 > 账号 > 游戏 > 服务器

没有的直接添加服务器即可。

在这里插入图片描述

我们将获取的token(就是一段字符串)先保存在文本中。

启动游戏
# 1.进入执行文件目录
cd ~/dstserver/bin64/

# 2.写入命令到 master.sh脚本	 -- 用于启动主世界
echo "./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Master" >> master.sh
# 3.写入命令到 caves.sh脚本	 -- 用于启动洞穴
echo "./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster Cluster_1 -shard Caves" >> caves.sh

# 4.启动服务
sh master.sh &
sh caves.sh &

# CentOS启动可能出现下面错误
./dontstarve_dedicated_server_nullrenderer_x64: error while loading shared libraries: 
libcurl-gnutls.so.4: cannot open shared object file: No such file or directory

# 此时可以尝试使用下面命令(注意这里~/dstserver是我的安装目录)
ln -s /usr/lib64/libcurl.so.4 ~/dstserver/bin64/lib64/libcurl-gnutls.so.4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

没有添加令牌的token,服务将并不会真正运行,但是会给我们生成文档目录。

在这里插入图片描述

CTRL + C结束启动,或输入 c_shutdown()执行关闭。

现在我们再进入生成的文档目录去添加令牌Token。

# 文档目录默认在: ~/.klei/DoNotStarveTogether
# 注意这里替换为自己的token即可
cd Cluster_1
echo "pds-g^KU_7muUzs2J^trM2m7pt52XEF7SOvVwT9KPpfZYqPUTWTJjqJFBqg1w=" > cluster_token.txt

# 这样我们就将token写入了cluster_token.ini文件了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

再次启动游戏即可。

但是…

我们似乎没有设置游戏信息,我们无法搜索我们的游戏房间,因为我们还没有对我们的服务器房间进行命名

因此我们还需要编辑一份服务器配置信息的文件

文件目录同token

这次我们把可编辑的文件一次性配置完。

# 注意文件的路径:~/.klei/DoNotStarveTogether
# 进入到文档位置
cd ~/.klei/DoNotStarveTogether/Cluster_1
# 添加服务器配置文件(修改房间人数上限,游戏模式,房间名称和描述等)
touch cluster.ini
# 添加管理员文件
touch adminlist.txt
# 添加黑名单文件
touch blocklist.txt
# 添加白名单文件
touch whitelist.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

配置项大概有如下的信息,我们可以自己修改。

在这里插入图片描述

当然

还有很多配置项等待你的探索…

这样,我们配置完再次启动,就可以在大厅搜到我们房间了。
在这里插入图片描述


配置MOD

饥荒最大的乐趣当然是模组了。

我们其实研究下下载的饥荒文件结构,不难发现有个文件夹就叫mods。
在这里插入图片描述
可以看到关于MOD的一些文件,我们可以通过vi或者vim命令编辑查看。

具体的内容就自己探索了。

这里我们说明MOD的配置,需要编辑的文件是dedicated_server_mods_setup.lua

设置格式里面有说明,截图看下效果即可。
在这里插入图片描述


一些有用的知识

我们可以在这里查看到饥荒专服的App ID

在这里插入图片描述

我们可以通过URL方式获取MOD的ID用于配置专服的模组。

在这里插入图片描述

同样的我们可以用URL替换模组ID的方式查看是哪个模组崩溃了。

认真的人会发现,每次模组崩溃的时候,界面是提示了workshop-123456类似的信息的。

替换URL前缀

https://steamcommunity.com/sharedfiles/filedetails/?id=
在这里插入图片描述

专服Ping值的显示可能跟公网IP和端口配置有关。

饥荒通信协议是UDP这是我们为什么配置UPD防火墙端口规则的原因。

在这里插入图片描述

云服的管理其实是一件需要点耐心的事情,启动脚本或许可以让世界+洞穴作为一个脚本启动,这样让人感觉更加友好。

技术原文:https://cloud.tencent.com/developer/article/1856896

我写的管理脚本:饥荒云服管理脚本

GitHub链接:https://github.com/clcaod/DoNotStarveTogether.git

脚本

#!/bin/bash
#
# 饥荒专服启动脚本(一键启动世界+洞穴),文件放在/bin64目录下执行
#
# 作者:曹曹曹曹老板来了
# 2022-03-26

# 文档名
CLUSTER_NAME="Cluster_1"
MASTER="Master"         # 世界
CAVES="Caves"           # 洞穴

######################################
# 窗口启动程序
# 全局变量:
#   CLUSTER_NAME: 文档名
# 参数:
#   NODE_NAME: 洞穴或者世界
# 返回值:
#   NULL
######################################
start(){
  local NODE_NAME="$1"

  # 窗口名称
  screen_name="${CLUSTER_NAME}"_"${NODE_NAME}"
  # 开启守护进程窗口
  screen -dmS ${screen_name}
  # 给窗口发送的命令
  cmd="./dontstarve_dedicated_server_nullrenderer_x64 -console -cluster ${CLUSTER_NAME} -shard ${NODE_NAME} $(printf \\r)"
  # 给窗口发送命令并执行
  screen -x -S ${screen_name} -p 0 -X stuff "$cmd"
}

# 开启世界
start "${MASTER}"
# 开启洞穴
start "${CAVES}"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

原汁原味的信息会更加友好。

科雷饥荒社区官网:https://forums.kleientertainment.com/forums/forum/73-dont-starve-together/

饥荒百科:https://dontstarve.fandom.com/zh/wiki/Don%27t_Starve_中文維基?variant=zh

控制台/命令:https://dontstarve.fandom.com/zh/wiki/控制台/多人版饑荒中的命令

希望更多的学会如何学习,而不是学会这件事本身。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/164902
推荐阅读
相关标签
  

闽ICP备14008679号