饥荒linux服务器搭建
饥荒linux服务器搭建
前置
参考文章
- Linux/Centos7
服务器系统
**[root@linux1 opt]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) **
官方参考
- steamcmd
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_
最后,祝各位小伙伴玩得愉快,这鬼游戏跟朋友一起玩才爽,可大部分人都败给了孤独,没有朋友一起玩,靓仔落泪╭(╯^╰)╮