Linux搭建私人饥荒服务器(centos8

您所在的位置:网站首页 dst-admin饥荒管理器 Linux搭建私人饥荒服务器(centos8

Linux搭建私人饥荒服务器(centos8

2024-07-15 00:54| 来源: 网络整理| 查看: 265

记录一次自己搭建饥荒服务器的经历 安装linux 32位运行环境安装steamcmd和饥荒服务程序从0配置地图存档配置服务器mod服务器启动window本地一键启、停脚本 一、安装Linux 32位运行环境

因为steamcmd运行需要32位系统运行环境,而目前使用的时64位环境,所以为了让steamcmd能够运行,就需要在64位的基础上再装上32位的运行环境,安装指令如下:

yum -y install glibc.i686 libstdc++.i686 libcurl4-gnutls-dev.i686 libcurl.i686 安装的时候可能会出现以下问题:

①Unable to find a match: ia32-libs.i686 这个是因为yum当前源里面,没有这个包导致的 ②Errors during downloading metadata for repository ‘base’ 这个是因为yum源没有设置对导致的 ③Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist 因为centOS8于2021年12月31日停止了源的服务,而现在时间是2022年2月10日,所以之前的方法都不行的原因所在(本质是源的问题)。

这三个问题可以用同一种方法来解决,那就是换源

# 进入yum目录 cd /etc/yum.repos.d # 删除目录下所有文件(注意完整复制,不要漏了那个点) rm -rf ./* # 安装正确的源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo # 生成缓存 yum makecache 创建一个用户来管理饥荒服务

非常重要的一点,Don’t Starve Together服务程序(以下简称DST)不允许以root用户身份运行,否则不会正常运行

useradd -m steam # 创建steam用户 su steam # 切换到steam用户下进行后续操作 二、安装steamcmd和饥荒服务程序

新建目录 steamcmd 此目录用于 steam 程序的安装目录。

mkdir ~/steamcmd

下载 SteamCMD 安装文件

wget -P ~/steamcmd https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz

解压压缩包

cd ~/steamcmd tar -xvzf ~/st

启动steamcmd

./steamcmd.sh

设置steamcmd存储位置(此步骤需再登录前执行,登录后无法执行该指令)

force_install_dir ./save

登录steamcmd

login stream用户名(就是window上登录steam的账号)

然后按提示输入密码、令牌口令即可完成登录 下载饥荒服务程序

app_update 343050 validate

这里的343050是steam中,饥荒的id编号,安装完成之后输入quit退出steamcmd(后续是配置饥荒服务程序,用不到steamcmd了)

# 当饥荒服务程序下载成功之后,输入下面的指令退出steamcmd quit

如果安装显示Error! App ‘232250’ XXXXX…,这是因为steam服务器在国外,因为网络不稳定导致下载失败,只需重复下载饥荒服务程序步骤即可 如果操作过程中,提示缺少libcurl-gnutls.so.4包,解决方案如下:

cd ~/dontstarvetogether_dedicated_server/bin/lib32 ln -s /usr/lib/libcurl.so.4 libcurl-gnutls.so.4 # 把/usr/lib下的libcurl.so.4的包放到steamcmd当前的存储位置的bin下就好了 三、从0配置地图存档 获取UserID和user_token 1.打开饥荒联机版的客户端,进入游戏,点击位于右下角的 账号 按钮,进入浏览器,记录用户 ID 值。

用户信息下的Klei用户ID

2.在上一步的网页中,点击导航栏的 游戏 ,再点击 DST 的 服务器,进入页面后添加新服务器并记录内容。

游戏tab下的《饥荒:联机版》的游戏服务器 设置集群名(联机时的服务器名称),并点击添加新服务器,设置一些参数后保存 添加完成之后可以看到一串字符 新建饥荒配置目录以及一个存档 饥荒的配置目录是固定的,位于:~/.klei/DoNotStarveTogether 默认配置目录不存在,我们自己进行创建路径同时创建并进入一个存档文件夹

mkdir -p ~/.klei/DoNotStarveTogether/MyDediServer cd ~/.klei/DoNotStarveTogether/MyDediServer

配置主配置文件

touch cluster.ini vim cluster.ini #################分割线(cluster.ini中的内容)################ [GAMEPLAY] max_players = 6 pvp = false game_mode = endless pause_when_empty = true vote_kick_enabled = true [NETWORK] cluster_description = 服务器描述 cluster_name = 服务器名称(同上面获取user_token时的服务器名保持一致) cluster_password = 服务器密码 cluster_intention = cooperative [MISC] max_snapshots = 6 console_enabled = true [SHARD] shard_enabled = true bind_ip = 127.0.0.1 master_ip = 127.0.0.1 master_port = 10889 cluster_key = supersecretkey

配置令牌和服务器管理员

# 先创建cluster_token用来放前面拿到的user_token touch cluster_token.txt vim cluster_token.txt # 把前面获取到的user_token粘贴到cluster_token.txt中 # 再创建adminlist.txt用来放前面拿到的UserID touch adminlist.txt vim adminlist.txt # 把前面获取到的UserID粘贴到adminlist.txt中

配置地上部分 在存档目录下(教程中是MyDediServer)创建并进入Master文件夹

mkdir Master # 创建Master文件夹 cd Master # 进入到Master文件夹 touch server.ini # 创建server.ini配置文件 vim server.ini # 编辑server.ini配置文件 ################分割线(server.ini中的内容)############## [NETWORK] server_port = 11000 [SHARD] is_master = true [STEAM] master_server_port = 27018 authentication_port = 8768 [ACCOUNT] encode_user_path = true

配置地图文件,新建 worldgenoverride.lua 文件。

touch worldgenoverride.lua vim worldgenoverride.lua ################分割线(worldgenoverride.lua的内容)################## return { override_enabled = true, preset = "SURVIVAL_TOGETHER", }

配置地下部分(开启洞穴的话)

mkdir Caves cd Caves touch server.ini vim server.ini ##################分割线(server-ini的内容)############### [NETWORK] server_port = 11001 [SHARD] is_master = false name = Caves [STEAM] master_server_port = 27019 authentication_port = 8769 [ACCOUNT] encode_user_path = true

配置地图文件,新建 worldgenoverride.lua 文件。

touch worldgenoverride.lua vi worldgenoverride.lua #############分割线(worldgenoverride.lua的内容)########## return { override_enabled = true, preset = "DST_CAVE", } mods配置

进入到服务器的的饥荒安装目录:

# 进入到服务器的饥荒安装目录下的mods文件夹中 cd ~/steamcmd/save/mods # 编辑mod配置文件 vim dedicated_server_mods_setup.lua

配置文件中的模组需要的是模组id,模组id可以在自己电脑游戏中的内置浏览器地址栏查看(国内steam安装需要加速器,否则无法访问) 模组订阅页面,在头部地址栏id=后面的数字内容 模组订阅页面,在头部地址栏id=后面的数字内容 mod添加格式为:

ServerModSetup("362175979") # 双引号中是上面说的模组ID,如果有多个,就一直往下列就行了 四、启动游戏

回到~目录创建启动脚本

cd ~ touch startDST.sh chmod 700 ./startDST.sh # 给脚本加上权限,否则会出现脚本无法运行 ###################分割线(startDST.sh的内容)################## #! /bin/bash steamcmd_dir="$HOME/steamcmd" install_dir="$HOME/steamcmd/save" cluster_name="MyDediServer" # 这个是存档目录的名称,就是/.klei/DoNotStarveTogether下面的存档目录名称,可更改为不同存档名称,开启不同存档服务 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" check_for_file "$install_dir/bin" cd "$install_dir/bin" || fail run_shared=(./dontstarve_dedicated_server_nullrenderer) 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: /'

启动脚本,试运行游戏

~/startDST.sh

如果运行没有报错,且在饥荒中搜索服务器名称可以搜到,则表示服务器启动成功。 当然,目前运行在当前会话中还不能满足服务器的持续运行需求,因为会话一旦终止,则当前运行的脚本也会被关闭,这意味着当前会话断开的时候,服务器也会关闭,这个时候我们需要用到screen来创建会话,将脚本运行持续挂在后台运行。

使用screen执行启动脚本 1、安装screen yum install screen # 安装screen

如果执行提示No matchforargument:screen,则需要先安装epel-resease再执行上面的screen安装指令

yum install epel-release -y 2、screen创建会话 # 创建一个会话,用来运行饥荒服务器启动脚本,再将该会话挂起 screen -S DST # 创建一个名为DST的会话 screen -r DST # 进入DST会话 ~/startDST.sh # 运行饥荒服务器启动脚本 # 脚本启动无误之后,使用快捷键Ctrl+A+D挂起当前会话 # 如果要关闭startDST.sh脚本(关闭饥荒服务器),首先需要进入名为DST(这里的名字依据自己创建的会话名为准)的会话,使用快捷键Ctrl+C终止脚本执行,再输入quit关闭会话 screen -r DST # 进入饥荒服务器脚本运行会话中 # 使用快捷键Ctrl+C终止饥荒服务器脚本执行 quit # 关闭并退出当前会话

到这里,饥荒服务器的搭建就已经完成了,启动~/startDST.sh脚本开启服务器,使用上面关闭服务器的指令,关闭服务器

window一键开服、关服脚本

但是身为一个标准的程序员,如此复杂的开服、关服操作,是我所不能容忍的,为此我又写了.bat脚本,实现了在自己电脑双击开服、双击关服的快捷操作。

1、在~下新建startScreen.sh脚本,用来简化创建screen和开启startDST.sh脚本的操作。

startScreen.sh脚本中写入如下脚本:

#! /bin/bash screen_name=$"DST" screen -dmS $screen_name cmd=$"~/startDST.sh" screen -x -S $screen_name -p 0 -X stuff "$cmd" screen -x -S $screen_name -p 0 -X stuff $'\n' 2、创建stopScreen.sh脚本用来简化终止screen的操作,实现关服。

在stopScreen.sh脚本中写入如下内容:

#! /bin/bash screen -X -S DST quit # 此指令是强制关闭会话,可能会出现游戏数据未保存的情况,目前最佳方式还是连接服务器,screen -r DST,然后Ctrl+C停止脚本运行 3、windows上创建start.bat脚本,用来调用服务器startScreen.sh脚本实现一键开服

start.bat脚本写入如下内容:

ssh steam@服务器ip地址 ~/startScreen.sh 4、windows上创建stop.bat脚本,用来调用服务器stopScreen.sh脚本实现一键关服

stop.bat脚本写入如下内容:

ssh steam@服务器ip地址 ~/stopScreen.sh

到这里,我们只需要双击start.bat文件,再输入密码就可以开启饥荒服务器;双击stop.bat文件,再输入密码就可以关闭饥荒服务器(

切记,不要一次执行两次start.bat脚本,会出问题)

5、配置ssh key实现脚本ssh免密登录

上面的操作实现了开服、关服操作,但是苦恼的是每次开服、关服都要输入服务器密码,太麻烦了,直接配置免密操作简化密码输入这一步 ①在本机创建ssh key

# win+r 输入cmd,打开控制台,输入ssh-keygen -t rsa生成ssh key # 按提示配置一些信息,或者一路回车简单快捷 # 创建完成之后,可以在C:\Users\当前登录用户\.ssh下面可以找到 ssh-keygen -t rsa

②服务器创建ssh配置文件

touch ~/.ssh/authorized_keys # 创建authorized_keys文件 vim ~/.ssh/authorized_keys # 编辑配置文件,并将上面在自己电脑创建的id_rsa.pub文件中的内容复制、粘贴到这里 # vim打开之后,按i开启编辑模式,编辑完成之后先按Esc键退出编辑状态,再输入 :wq 保存并退出编辑 chmod 600 ~/.ssh/authorized_keys # 给authorized_keys设置权限

此处参考:https://blog.csdn.net/weixin_35757704/article/details/111573824

至此,饥荒服务器搭建、服务器配置、快捷启停已经全部完成。 文章参考博文如下: 饥荒服务器搭建教程1:https://blog.csdn.net/szhiy/article/details/79996017 饥荒服务器搭建教程2:https://zhuanlan.zhihu.com/p/25831490 centos8安装screen:https://www.jianshu.com/p/b31aead3bbc3 yum换源教程:https://blog.csdn.net/tongkongyu/article/details/122824763 实现ssh key免密登录:https://blog.csdn.net/weixin_35757704/article/details/111573824 Errors during downloading metadata for repository ‘base‘问题解决:https://blog.csdn.net/tongkongyu/article/details/122824763



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3