饥荒联机版专用服务器搭建全流程Windows-Linux

写在前面

开始玩饥荒到现在,搭建服务器已经是家常便饭了,往往是朋友们心血来潮,上午说集结,下午就开始联机,在中午不得不花一小时甚至更多的时间去网上扒配置文件和命令,这么一折腾兴致已去一半了,实在是难顶,这里把搭建过程全部记录下来,给自己做个笔记吧

服务端安装

for Windows

直接通过Steam客户端安装

这没啥好说的,打开steam,在的顶部下拉栏勾上工具,下载Don’t Starve Together Dedicated Server (当然前提是你账户里得有Don’t Strave Together游戏)

SteamCMD安装

下载SteamCMD:https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
随便找个地方解压,我放在D:\tem下,然后在这个目录下打开powershell(CMD也ok啦)

输入

1
.\steamcmd

等它跑完出现 steam> 后再接着输入

1
2
3
login anonymous
force_install_dir C:\path\to\directory
app_update 343050 validate

force_install_dir后的路径设置自己想放饥荒联机服务端的位置,我这里就放在D:\tem\dst下了。当然,如果你不设置,它就会安装在(你的SteamCMD存放目录)\steamapps\common里面,敲回车等待服务端下载
等看到弹出 Success! App ‘343050’ fully installed. 就可以关掉窗口了

for Linux

linux最好使用Ubuntu,用Centos的话后面的依赖问题十分麻烦,这里默认大家都是用Ubuntu
root登陆你的服务器,添加一个用于启动饥荒联机服务端的用户并设置好密码

1
2
adduser -m dst 
passwd dst

这里开始要安装一些依赖,记得先update一下包管理器

1
2
3
4
5
6
7
8
9
10
Ubuntu 32位
sudo apt install libstdc++6 libgcc1 libcurl4-gnutls-dev screen
Ubuntu 64位
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 screen
CentOS 32位
yum -y install glibc libstdc++ libcurl libcurl4-gnutls-dev screen
CentOS 64位
yum -y install glibc.i686 libstdc++.i686 libcurl.i686 libcurl4-gnutls-dev.i686 screen

切换到dst用户

1
su dst

建一个文件夹来塞你的SteamCMD文件,我直接在用户目录下建steam文件夹,即/home/dst/steam 再通过SteamCMD下载饥荒联机服务端,和在Windows下几乎一样的方法,不再多赘述

1
2
3
4
5
6
7
8
9
10
cd /home/dst
mkdir steam
cd steam
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
./steamcmd.sh
login anonymous
force_install_dir /home/dst/steam/dst
app_update 343050 validate
quit

生成配置文件

饥荒的配置文件其实可以通过启动一次服务端来初始化后再手动更改,但是鉴于饥荒的地图和mod配置文件修改起来实在是有点繁琐,大部分人不想去通过一个文本文档来更改游戏里面的设置吧,想着就脑壳疼,最多最多改改地图种子了。这里就直接通过创建本地存档的方式来生成配置文件

这里的配置就是你最终的服务端配置(不手动改配置文件)把想要用的服务端mod都勾上,地上的、洞穴的配置都配好,确认无误后点击创建世界来生成存档,等到进入角色选择界面后就能退出来了。

在电脑的文档\Klei\DoNotStarveTogether(一串数字)\ 下可以找到你刚才创建的存档Cluster_X,这里的X取决于刚才在饥荒客户端中创建存档时选择的位置,如果你之前没有存档,这里就是Cluster_1

打开存档目录下的cluster.ini 这里可以改一下服务器的基本设置,

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
[GAMEPLAY]
game_mode = endless
max_players = 6
pvp = false
pause_when_empty = true

[NETWORK]
server_port = 10999
lan_only_cluster = false
cluster_intention = cooperative
cluster_password =
cluster_description =
cluster_name = ライザ的世界
offline_cluster = false
cluster_language = zh

[MISC]
console_enabled = true

[SHARD]
shard_enabled = true
bind_ip = 127.0.0.1
master_ip = 127.0.0.1
master_port = 10888
cluster_key = defaultPass

我在原有的配置上在[NETWORK]下加上了server_port = 10086来指定游戏的通讯端口,这其实无关紧要了,默认端口是10999,其他的配置文件可以自行去文末的Don’t Starve Wiki上折腾吧,修改完后保存
紧接着打开客户端进行如下操作(多图警告!!)





将得到的token复制一下,打开cluster_token.txt替换掉原来的内容,保存

可选配置

  • 管理员
  • Ban用户
  • 白名单

这些都不在本文介绍范围内,我们就是几个基友耍耍下线,重要的是建立服务器的效率,速建速玩!如果想要更详细的信息可以去这位大佬的博文看看,是本文主要参考的文章之一:http://blog.ttionya.com/article-1235.html
最后,当你完成了所有配置文件的更改,请确保所有配置文件的编码方式都为UTF-8否则配置文件可能不生效

这样子存档文件夹Cluster_1就完成了,可以先找个地方放起来,我这里把它改个名字Pixel,后面就都用Pixel

拷贝配置文件到服务端并启动

for Windows

**右键编辑D:\tem\dst\bin\scripts(自行换成自己的目录,Steam客户端安装服务端的同理)下的launch_preconfigured_servers.bat文件

1
2
3
4
5
6
7
8
@ECHO OFF

set SteamAppId=322330
set SteamGameId=322330

cd ..
start "Don't Starve Together Overworld" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -conf_dir DoNotStarveTogether_EasyConfigOverworld -console
start "Don't Starve Together Caves" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -conf_dir DoNotStarveTogether_EasyConfigCaves -console

我们需要修改一些东西,在上面的两个-conf_dir之后的目录需要改成我们配置文件存放的目录,当然也可以直接把配置文件挪过去,把Pixel文件夹拷贝到文档\Klei\DoNotStarveTogether目录下,更改launch_preconfigured_servers.bat的内容,更改后:

1
2
3
4
5
6
7
8
@ECHO OFF

set SteamAppId=322330
set SteamGameId=322330

cd ..
start "Don't Starve Together Overworld" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster Pixel -console -shard Master
start "Don't Starve Together Caves" /D "%~dp0.." "%~dp0..\dontstarve_dedicated_server_nullrenderer.exe" -cluster Pixel -console -shard Caves

上面-cluster之后就是我们的Pixel文件夹
弄完以后双击launch_preconfigured_servers.bat就能启动了

for Linux

准备一个地方放置你的存档,我放在/home/dst/dstsave目录下,

1
mkdir /home/dst/dstsave

cd到你的饥荒服务端安装目录的bin目录下,我的目录是/home/dst/steam/steamapps/common/Don’t Starve Together Dedicated Server/bin 说来奇怪,之前的目录修改貌似没有生效,转在了默认路径,总之你找到你的安装路径就行了,在使用cd的时候,如果文件夹有空格,这一整个文件夹名字要用双引号括起来,例如cd /home/dst/steam/steamapps/common/“Don’t Starve Together Dedicated Server”/bin
然后输入下面指令来创建启动脚本(Pixel是存档文件夹的名字,下一步需要放在之前创建的/home/dst/dstsave目录下,根据需要自行修改)

1
2
3
4
cd /home/dst/steam/steamapps/common/"Don't Starve Together Dedicated Server"/bin
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dst/dstsave -conf_dir Pixel -cluster Master -shard Master" > master_start.sh
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/dst/dstsave -conf_dir Pixel -cluster Caves -shard Caves" > cave_start.sh
chmod +x master_start.sh cave_start.sh

接下来把之前创建的Pixel配置文件夹拷贝到/home/dst/dstsave下就行了

1
2
3
4
5
6
7
cd /home/dst/steam/steamapps/common/"Don't Starve Together Dedicated Server"/bin
screen -S master
./master_start.sh
###按下Ctrl+A然后再按下Ctrl+D让screen后台运行
screen -S cave
./cave_start.sh
###先Ctrl+A然后再按下Ctrl+D

参考文章


饥荒联机版专用服务器搭建全流程Windows-Linux
https://ice.icemilk.cc/archives/ff1824ec.html
作者
Ryza
发布于
2021年3月25日
许可协议