欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

想要和朋友流畅地在《饥荒》里玩耍?快来学习如何在Linux上搭建自己的服务器吧!即使是零基础也没有问题哦。

最编程 2024-02-13 18:49:19
...

考虑到普通用户用Windows比较多,所以文章使用Windows Server进行主要演示,这里简单演示一下Linux Server上如何进行操作。

Linux服务器,我也推荐使用腾讯云轻量应用服务器,推荐使用Debian或Ubuntu发行版本,不推荐使用CentOS发行版本。(使用CentOS,可能会缺少i386依赖库,导致饥荒服务器无法初始化运行)。

如果你并没有服务器设备,需要一个购买/租借,强烈推荐:

  • 本站专属腾讯云秒杀链接(可低价购买轻量应用服务器)

首先,我们还是使用SteamCMD去同步饥荒服务器,但是观察SteamCMD官方文档,SteamCMD需要用一个叫steam的用户,在“家”目录下的steam内操作。所以,我们提前创建:

# 创建一个用户叫steam
sudo useradd -m steam
# 给steam重置密码
sudo passwd steam 

另外,steamcmd需要依赖包:

# Ubuntu/Debian
sudo apt-get install lib32gcc1
# CentOS
yum install glibc.i686 libstdc++.i686

初始化与拉取

下载SteamCMD并安装:

# 切换为steam用户
su - steam
# 创建steam目录
mkdir ~/Steam && cd ~/Steam
# 下载SteamCMD并解压
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
# 运行steamcmd
./steamcmd.sh

如图:
安装运行SteamCMD

Steam开头时,就是进入SteamCMD的交互模式了,我们使用:

login anonymous

即可匿名登录:

之后,进行饥荒服务器的拉取:

app_update 343050 validate


拉取成功:
拉取饥荒服务器成功

最后,看了一下目录,就和Windows Server一模一样了,实际上的配置也是一样的:

初始化定制

但是,如果要启动,建议的配置是,首先创建一个地图配置目录:

# 当前是steam用户
mkdir /home/steam/myDoNotStarveTogetherData

之后,创建地图启动脚本:

# 当前是steam用户
cd /home/steam/Steam/steamapps/common/Don't Starve\ Together\ Dedicated\ Server/bin
echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam -conf_dir myDoNotStarveTogetherData -cluster World1 -shard Master" > master_start.sh

echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam -conf_dir myDoNotStarveTogetherData -cluster World1 -shard Caves" > cave_start.sh

chmod +x master_start.sh cave_start.sh

之后,运行即可:

# 当前在饥荒目录内的bin文件夹下
## 启动主世界
./master_start.sh
## 启动洞穴
./cave_start.sh

注意:启动过程中,需要保持交互模式,配合screen来后台运行饥荒洞穴和主世界。

i386支持问题

在Debian/Ubuntu上如果出现./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libcurl-gnutls.so.4: cannot open shared object file: No such file or directory
或者./dontstarve_dedicated_server_nullrenderer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

一般是因为你服务器是X86_X64的,你需要开启i386支持,并添加i386版本的libcurl-gnutls.so.4到其包内。切换到root用户运行:

# 开启支持
sudo dpkg --add-architecture i386
# 更新软件
sudo apt update
# 下载更新源
sudo apt-get dist-upgrade

之后,安装i386的库:

sudo apt install libcurl4-gnutls-dev:i386

安装过程
之后,软连接到饥荒服务器内:

ln -s /usr/lib/i386-linux-gnu/libcurl-gnutls.so.4 /home/steam/Steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/bin/lib32/libcurl-gnutls.so.4

配置
同理,配置i386版本的libstdc++.so.6

sudo apt install libstdc++6:i386
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /home/steam/Steam/steamapps/common/Don\'t\ Starve\ Together\ Dedicated\ Server/bin/lib32/libstdc++.so.6

之后,就可以正常启动服务器了。正常会启动失败啦,不过已经可以运行了:
运行效果

并且,我们设置的地图目录也成功出现地图配置目录:
地图配置目录

后续想启动成功,跟着Windows Server上的教程,配置同步配置文件Auth Token就可以正常启动了(当然,还有服务器端口记得放哦)。记得配合screen来后台运行饥荒洞穴和主世界。