云服务器搭建 饥荒(x64位)-2024年4月24日

一、安装依赖

yum install epel-release    # 添加 EPEL 仓库
yum update    # 更新系统
yum install libstdc++ libgcc glibc.i686 libcurl-devel zlib.i686    # 安装依赖

二、安装 SteamCMD

mkdir /root/steamcmd && cd /root/steamcmd    # 创建steamcmd文件夹,并进入
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz    # 下载 steamcmd 程序
tar -xvzf steamcmd_linux.tar.gz    # 解压 steamcmd_linux.tar.gz 文件
./steamcmd.sh    # 启动 steamcmd

三、安装饥荒联机版

steam> force_install_dir /root/dst
steam> login anonymous
steam> app_update 343050 validate
steam> quit
# 每输入一个命令进行等待,等待出现 steam> 在进行下个命令。

四、创建服务器存档

1. 在服务器中创建存档的存放文件夹,进入文件夹。
mkdir -p /root/.klei/DoNotStarveTogether/Cluster_1
cd /root/.klei/DoNotStarveTogether/Cluster_1
2. 在 Windows 上先创建地图,然后找到地图文件,上传到服务器中,没有 cluster_token.txt 文件没关系,后面会创建。
Windows里:
地图文件:C盘/用户/Administrator/文档/klei/DoNotStarveTogether/ID/Cluster_1/ 
服务器里:
yum install -y lrzsz    # 下载文件上传工具
将 Windows 所有地图文件拖入到 XShell 窗口

3. 创建服务器 token,复制。

    Klei Account:https://accounts.klei.com/account/game/servers?game=DontStarveTogether

4. 在服务器的Cluster_1文件夹下创建文件cluster_token.txt,将服务器 token 保存到文件中。
echo "token" cluster_token.txt

五、为自己添加管理员权限

1. 访问 Klei Account:https://accounts.klei.com/account/info 页面,找到自己的 klei ID

2. 创建管理员权限文件,复制 klei ID 替换到文件中
    echo "klei ID" adminlist.txt

六、为服务器订阅MOD

在 /root/.klei/DoNotStarveTogether/Cluster_1/Master/modoverride.lua 中查看 Mod-ID,将Mod-ID 全部写入 /root/dst/mods/dedicated_server_mods_setup.lua

Ps:/root/.klei/DoNotStarveTogether/Cluster_1/Master/modoverride.lua就是这个地图的 MOD 配置,如果订阅了新 MOD ,一定要到这里添加配置,不然 MOD 不会生效。 Caves中也有一个modoverride.lua文件,记得一起修改。

 

 七、创建启动脚本

cd /root/    # 切换到/root/目录下,创建脚本:

vim boot.sh
--------------------以下为脚本内容---------------------
#!/bin/bash
steamcmd_dir="/root/steamcmd"
install_dir="/root/dst"
cluster_name="Cluster_1"
dontstarve_dir="/root/.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/bin64" || fail
run_shared=(./dontstarve_dedicated_server_nullrenderer_x64)
run_shared+=(-console)
run_shared+=(-cluster "$cluster_name")
run_shared+=(-monitor_parent_process $$)
run_shared+=(-shard)
"${run_shared[@]}" Caves | sed 's/^/Caves: /' &
"${run_shared[@]}" Master | sed 's/^/Master: /'
------------------------------------------------------
chmod u+x boot.sh    # 赋予boot.sh执行权限

 八、防火墙开放端口

  具体需要开放的端口可以查看存档文件夹下的这几个文件

  饥荒端口,UDP 协议:

  /root/.klei/DoNotStarveTogether/Cluster_1/cluster.ini中的master_port

  /root/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini中的server_port

  /root/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini中的server_port

   steam 端口,TCP+UDP 协议:

  /root/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini中的master_server_portauthentication_port

在命令行执行此命令:
grep -E 'master_port|server_port|master_server_port|authentication_port' /root/.klei/DoNotStarveTogether/Cluster_1/cluster.ini /root/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini /root/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini

  在云服务器网站上-实例-安全组-配置规则,添加如下配置:

九、启动饥荒服务器

nohup ./boot.sh &    # 后台运行,并记录输出内容
tail -100f nohup.out    # 动态查看100行

   能看到下面这样的输出就是启动成功了:

Caves: [00:01:21]: Received MasterInfoPacket row a4c11a8dbe3e737854e23c2a2744cf50 region ap-southeast-1
Caves: [00:01:21]: Obtaining secondary shard IP from ap-southeast-1 lobby
Caves: [00:01:22]: [Shard] secondary shard is now ready!
Caves: [00:01:22]: World 1 is now connected        
Caves: [00:01:22]: [SyncWorldSettings] Sending ResyncWorldSettings.        

十、编写操作脚本

【启动脚本】
vim start.sh
------------------------------------------------------
#!/bin/bash
nohup /root/boot.sh &

# 等待进程启动
echo "服务器正在启动..." && sleep 3

# 检查进程是否正在运行
if pgrep -f dontstarve_dedicated_server_nullrenderer > /dev/null
then
    echo "服务器启动成功!"
else
    echo "警告:服务器未能启动!"
fi
------------------------------------------------------

【停止脚本】
vim stop.sh
------------------------------------------------------
#!/bin/bash
pkill -f dontstarve_dedicated_server_nullrenderer
------------------------------------------------------

【更新脚本】
vim update.sh
---------------------------------------------------------------------------------------
#!/bin/bash
/root/steamcmd/steamcmd.sh +force_install_dir /home/dst +login anonymous +app_update 343050 validate +quit
---------------------------------------------------------------------------------------

 十一、修改服务器名称和密码

服务器的名称的名称和密码在/root/.klei/DoNotStarveTogether/Cluster_1/cluster.ini文件中,修改后重启即可

  cluster_password = xxxxxxx

  cluster_name = Elm的世界

十二、更新服务器到最新版本

每次饥荒联机版更新后都需要同步更新服务器,不同版本之间不能在一起玩,而且搜索不到房间。

这里推荐一个查询饥荒服务器的网址,如果你在这个网址上能搜到自己的服务器,但是其他人搜不到,那应该就是版本不同导致的。

饥荒网页版服务器列表:https://dst.liuyh.com/serverlist

十三、服务器卡顿可能原因排查

  导致玩家在服务器上卡顿的原因有很多,比如:

1. 玩家到服务器连接不稳定

2. 服务器CPU负载过高 或 内存不足

3. 存在优化较差的MOD 或 相互不兼容

  验证方式:

1. 连接是否稳定可以使用ping命令

【Windows】
Win + R,输入cmd回车,ping 服务器IP -t
C:\Users\Administrator>ping 121.36.205.101 -t

正在 Ping 121.36.205.101 具有 32 字节的数据:
来自 121.36.205.101 的回复: 字节=32 时间=19ms TTL=45
来自 121.36.205.101 的回复: 字节=32 时间=18ms TTL=45

Ctrl+C #停止
观察时间那一列是否经常会跳出一些比较大的数字,一般来说 <60ms 都是正常的。

2. 服务器性能排查,在 ubuntu/centos 系统中可以使用 top 或者 htop 命令查看服务器资源使用情况

yum install -y htop    # 下载服务器状态查看工具
htop    # 使用工具

3. MOD 问题

可以上传一个纯净存档(不开任何MOD)试试,如果不卡顿再一个个关掉 MOD 尝试,没啥太好的办法。

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 饥荒是一款广受欢迎的生存类游戏,而饥荒服务器是为玩家提供在线游戏体验的服务器。为了方便玩家管理和设置服务器饥荒提供了一个web服务器管理界面。 饥荒web服务器管理界面是一个基于网页的界面,通过浏览器便可访问。通过这个管理界面,玩家可以对服务器进行各种操作和设置。 首先,玩家可以在管理界面中查看当前服务器的状态。包括服务器的在线人数、服务器的延迟情况、当前地图的状态等等。这些信息对于玩家了解服务器的运行状况非常重要。 其次,玩家可以在管理界面中进行设置。比如,玩家可以选择地图类型、难度级别、是否开启PvP等等。这些设置将直接影响到游戏的体验,玩家可以根据自己或团队的需要进行选择。 此外,玩家还可以在管理界面中查看和编辑服务器的MOD。MOD是饥荒中的模组,可以为游戏增加新的物品、角色、地图等内容,让游戏更加丰富多样。通过管理界面,玩家可以方便地查看和控制服务器中所加载的MOD。 最后,玩家还可以在管理界面中进行一些管理操作。比如清除服务器上的垃圾文件、备份服务器的存档、封禁玩家等等。这些操作可以帮助玩家维持服务器的良好运行状态。 总的来说,饥荒web服务器管理界面提供了诸多方便实用的功能,让玩家可以方便地管理和设置自己的饥荒服务器。通过这个界面,玩家可以更好地掌控游戏的进程,提供更好的游戏体验。 ### 回答2: 饥荒是一款非常火爆的生存游戏,对于许多玩家而言,他们不仅仅只想自己一个人体验这个游戏的乐趣,还想和其他玩家一起来共同探索、建造和生存。为了能够实现多人游戏的需求,就需要有一个稳定而且高效的服务器来支持游戏的运行。 饥荒 web 服务器管理界面就是可以帮助玩家进行服务器设置和管理的工具。通过这个界面,玩家可以方便地对服务器进行各种设置,比如地图类型、玩家数量、难度等。同时,玩家还可以通过管理界面来查看服务器的状态,比如在线玩家的人数、服务器的运行情况等。 在饥荒 web 服务器管理界面中,还可以进行一些高级设置,比如添加插件、修改服务器规则等。这些设置可以帮助玩家进一步个性化服务器的运行,提升游戏体验。管理界面还提供了一些监控工具,可以实时监测服务器的负载情况,确保服务器的稳定运行。 总之,饥荒 web 服务器管理界面是一个方便玩家进行服务器管理的工具,通过它可以轻松地对服务器进行设置和监控。它不仅提供了基本的服务器设置功能,还能够进行高级设置和个性化调整。通过使用这个界面,玩家可以更好地享受多人游戏的乐趣,创造属于自己的饥荒世界。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值