前置
1.安装steamcmd和饥荒服务器软件
# 安装依赖
yum -y install glibc.i686 libstdc++.i686 screen libcurl.i686

# 创建用户和目录
useradd steam
su - steam
mkdir -p ./module/software
mkdir -p ./module/software
cd module
mkdir steamcmd_linux
cd module/software/

# 下载解压steamcmd
[steam@linux1 software]$ wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
[steam@linux1 software]$ tar -zxvf steamcmd_linux.tar.gz -C ../steamcmd_linux/

# 启动steamcmd
[steam@linux1 steamcmd_linux]$ pwd
/home/steam/module/steamcmd_linux
[steam@linux1 steamcmd_linux]$ ./steamcmd.sh 
# 设置目录,安装饥荒服务器
Steam>force_install_dir /home/steam/module/DoNotStarveTogether
# 登录
Steam>login anonymous
Steam>app_update 343050 validate

# 退出
Steam>quit
2.解决问题
ln -s /usr/lib/libcurl.so.4 /home/steam/module/DoNotStarveTogether/bin/lib32/libcurl-gnutls.so.4
3.配置服务器
# 创建世界目录
[steam@linux1 DoNotStarveTogether]$ pwd
/home/steam/module/DoNotStarveTogether
[steam@linux1 DoNotStarveTogether]$ mkdir -p allworlds/world1

# 创建启动脚本
[steam@linux1 bin]$ pwd
/home/steam/module/DoNotStarveTogether/bin
[steam@linux1 bin]$ echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/module/DoNotStarveTogether -conf_dir allworlds -cluster world1 -shard Master" > master_start.sh
[steam@linux1 bin]$ echo "./dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root /home/steam/module/DoNotStarveTogether -conf_dir allworlds -cluster world1 -shard Caves" > cave_start.sh
[steam@linux1 bin]$ chmod +x master_start.sh cave_start.sh
4.创建饥荒世界

进入饥荒联机版正常创建地上和洞穴世界,可以添加mod,然后生成世界进入选择人物界面后退出。如图片所示我创建了一个名为社会主义接班人的世界,点击如图所示图标进入世界对应的文件夹

在这里插入图片描述

  • 世界对应文件夹

在这里插入图片描述

  • 创建服务器并复制用户ID和服务器ID,用户ID用于添加饥荒世界中的管理员

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 用户ID和服务器ID

在这里插入图片描述

  • 在饥荒世界文件夹中创建adminlist.txt文件和cluster_token.txt文件,上面复制的用户ID复制到adminlist.txt中,将服务器ID复制到cluster_token.txt

在这里插入图片描述

  • 将自己电脑上的饥荒世界文件上传的服务器上/home/steam/module/DoNotStarveTogether/allworlds/world1,可以使用sftp等上传工具上传到服务器上

在这里插入图片描述

5.服务器添加mods

找到Master或者Caves目录下的modoverrides.lua文件,形如workshop-xxxxxxxx,workshop-后面的纯数字串就是你创建世界时开启的mod,将这些数字串全部复制出来写成ServerModSetup("xxxxxxx")的形式,存入服务器上的/home/steam/module/DoNotStarveTogether/mods/dedicated_server_mods_setup.lua文件中

在这里插入图片描述

在这里插入图片描述

  • 找到mod的数据文件上传到服务器上(以下mod文件为本人开启的mod)
# 这些mod在Steam\steamapps\common\Don't Starve Together\mods下都能找到,
  没有必要一个一个找,将所有以workshop-开头的文件夹都复制出来
1530801499
2041908508
2110246021
2115943953
2142372577
362175979
374550642
378160973
396026892
482843324
604761020
786556008
856487758

# 这些是大型mod,存放在Steam\steamapps\workshop\content\xxxxxx目录下,
  需要复制出来更改文件夹都重命名加上workshop-前缀
1944492666
2287303119
2511670792
2557712505
375859599
444235588

# 将以上所有复制并正确改名的mod全部上传到服务器上,
  上传到/home/steam/module/DoNotStarveTogether/mods目录下

在这里插入图片描述

6.开启饥荒服务器

自此,所有搭建过程完成,下面开启饥荒服务器

[steam@linux1 bin]$ pwd
/home/steam/module/DoNotStarveTogether/bin
[steam@linux1 bin]$ cd /home/steam/module/DoNotStarveTogether/bin

# 开启主世界
screen -S master
./master_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

# 开启洞穴
screen -S caves
./cave_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台


# 查看后台是否正常运行
[steam@linux1 bin]$ netstat -nlp |grep 10999
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 0.0.0.0:10999           0.0.0.0:*                           9849/./dontstarve_d 
[steam@linux1 bin]$ netstat -nlp |grep 10998
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 0.0.0.0:10998           0.0.0.0:*                           10080/./dontstarve_ 

在这里插入图片描述

如果能看到以上两个进程,说明服务器正常启动了,就可以游戏了搜索你创建世界的名字,如果服务器搭建成功且正常启动就能搜到,比如我的是社会主义接班人

在这里插入图片描述

然后就可以和小伙伴愉快的玩耍了。没有人玩时服务器会自动停止世界暂停,有玩家进入时自动开启。需要注意的是,如果你用的阿里的服务器(其他厂家的服务器可能也有),需要设置安全组,暴露出10999和10998端口,否则即使你搭建的服务器正常也搜索不到你创建的游戏。

补:7.更新和重启

有小伙伴反应不知道怎么重启和更新,我确实也没写这部分内容,这里坑还挺多的。本着帮人帮到底送佛送到西的精神,我也不想小伙伴废了好大劲搭建起来的服务器,遇到游戏更新或者模组更新就玩不了了,我在这里补充下,谁让我人帅心善活好呢(〃‘▽’〃)

7.1停止服务器

别管是服务器的更新还是模组的更新,本人的建议都是先停止服务器,不建议直接杀端口,直接杀我遇到游戏内容改变或者丢失的情况,我们之前启动服务器是这样的:

# 开启主世界
screen -S master
./master_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

# 开启洞穴
screen -S caves
./cave_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

所以我们停止服务器只需要使用 “screen -r name” 进入会话停止就好了:

# 进入主世界
screen -r master
# 按Ctrl+c停止服务器
# 然后按下Ctrl+A+D退出

# 进入洞穴
screen -r caves
# 按Ctrl+c停止服务器
# 然后按下Ctrl+A+D退出
7.2 服务器更新和模组更新

这个看有没有更新很容易,在Steam下载页面可以看到是否有饥荒的相关下载,只要有饥荒的相关下载,那么不是游戏就是模组有更新。
在这里插入图片描述
服务器更新和之前安装步骤一样:

# 启动steamcmd
[steam@linux1 steamcmd_linux]$ pwd
/home/steam/module/steamcmd_linux
[steam@linux1 steamcmd_linux]$ ./steamcmd.sh 
# 设置目录,安装或者更新饥荒服务器
Steam>force_install_dir /home/steam/module/DoNotStarveTogether
# 登录
Steam>login anonymous
Steam>app_update 343050 validate

# 退出
Steam>quit

模组更新也很简单,在你电脑上模组文件夹内(有两个模组目录)查看有没有最近更新的(看修改日期),有的话就把linux服务器mods目录下的对应文件夹替换掉,也要改名。(全部打包,不管新的旧的都替换掉也行)
在这里插入图片描述
在这里插入图片描述

7.3 启动

启动和之前一样

[steam@linux1 bin]$ pwd
/home/steam/module/DoNotStarveTogether/bin
[steam@linux1 bin]$ cd /home/steam/module/DoNotStarveTogether/bin

# 开启主世界
screen -S master
./master_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

# 开启洞穴
screen -S caves
./cave_start.sh
# 如果没报错并且看到Simple pause就代表启动成功,按下Ctrl+A然后再按下Ctrl+D就可以让服务后台运行,并回到原来的控制台

# 查看后台是否正常运行
[steam@linux1 bin]$ netstat -nlp |grep 10999
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 0.0.0.0:10999           0.0.0.0:*                           9849/./dontstarve_d 
[steam@linux1 bin]$ netstat -nlp |grep 10998
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
udp        0      0 0.0.0.0:10998           0.0.0.0:*                           10080/./dontstarve_ 

最后,祝各位小伙伴玩得愉快,这鬼游戏跟朋友一起玩才爽,可大部分人都败给了孤独,没有朋友一起玩,靓仔落泪╭(╯^╰)╮在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐