0%

Linux 搭建饥荒服务器教程(1)

这篇教程是 Ubuntu 和 CentOS 搭建饥荒联机版(Don’t Starve Together)服务器的教程。

安装依赖

首先安装必要的库环境。
Ubuntu 系统需要的依赖:

1
2
3
4
5
# 64位机器安装依赖,现在的云服务器都是64位的
sudo apt-get install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386

# 32位机器安装依赖,一般是老设备
sudo apt-get install libstdc++6 libgcc1 libcurl4-gnutls-dev

CentOS 系统需要的依赖:

1
yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686

在服务器安装 Steam 客户端

先在服务器新建文件夹用于安装Steam客户端,Steam客户端是用来下载游戏的。

1
2
3
4
5
6
7
8
mkdir ~/steamcmd
cd ~/steamcmd

# SteamCMD安装文件
wget -P ~/steamcmd https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

# 解压压缩包
tar -xvzf ~/steamcmd/steamcmd_linux.tar.gz

获取官方服务器配置

本文中我们的服务器配置文件存放于 ~/.klei/DoNotStarveTogether/ 文件夹,
饥荒服务器运行文件存放于 ~/DoNotStarveTogether 文件夹。
首先创建这两个文件夹

1
2
mkdir -p ~/.klei/DoNotStarveTogether/
mkdir -p ~/DoNotStarveTogether/

下面去官方网站获取服务器配置文件,进入官方账号页面(https://accounts.klei.com/),选择一种方式登录

点击“GAMES”按钮,找到饥荒选项,点击“Game Servers”按钮进入服务器配置页面。

如果要用已有服务器配置,点击“CONFIGURE”按钮,如果要新增服务器配置,点击“ADD NEW SERVER”按钮。

接下来在选项框中修改服务器设置。

其中

  • Game Mode:服务器游戏模式。
  • Maximum Players:最大玩家数量。
  • Cluster Name:服务器名称。
  • Cluster Description:服务器描述。
  • Server Playstyle:服务器游玩模式。
  • Cluster Password:服务器密码,建议设置防止不怀好意的玩家。

然后点击“DOWNLOAD SETTINGS”下载配置文件,解压后将 MyDediServer 文件夹放入 ~/.klei/DoNotStarveTogether/ 文件夹即可。
此时,服务器配置文件已经安装完成。

使用一键脚本安装并启动服务器

编辑安装与运行脚本 run_dedicated_servers.sh
(需要有一定的vim知识,也可以使用更简单的nano):

1
vim ~/run_dedicated_servers.sh

以下是写入 run_dedicated_servers.sh 的内容

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
39
40
41
#!/bin/bash

steamcmd_dir="$HOME/steamcmd"
install_dir="$HOME/DoNotStarveTogether"
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: /'

给脚本增加可执行权限

1
chmod u+x ~/run_dedicated_servers.sh

然后执行,就可以自动安装、更新服务器并启动了。

1
~/run_dedicated_servers.sh

如果在安装过程中出现了: “Error! App ‘232250’ XXXXX…” 表示Steam 存在网络连接问题,
解决方案是重新执行脚本安装直至成功。

启动游戏

到此所有的配置过程结束,但是为了使饥荒在后台运行。
这里我们需要利用 screen 命令。

利用 screen 命令创建一个新窗口,用于后台运行:

1
screen -S DST

现在启动脚本就可以开始游戏了

1
~/run_dedicated_servers.sh
  • 退出 screen
1
Ctrl` + `A` + `D

关于使用systemctl自动启动服务器的方法见博客中我的世界服务器搭建教程

下一篇Linux 搭建饥荒服务器教程(2)