云计算百科
云计算领域专业知识百科平台

Linux 下 Barotrauma(潜渊症)服务器的高可用部署方案

目录

  • 背景与方案选择
  • 方案一:使用 MCSM 面板的 Docker 容器部署
    • 优势
    • 架构概述
    • 部署步骤
      • 1. 安装 MCSM 面板和 Docker
      • 2. 创建潜渊症服务器实例
      • 3. 实现高可用性
      • 4. 内网穿透与公网访问
  • 方案二:Docker Compose + Dockerfile 部署(K8S)
  • 常见问题与解决方案
  • 总结与最佳实践建议

  • 背景与方案选择

    近期,我的《潜渊症》网友们反馈游戏自带的 P2P 联机存在较高延迟,计划单独购置一台服务器,安装 Windows 系统、注册 Steam 账号并重新购买游戏。我认为这一方案过于冗余——我们现有的 主机上运行的 Ubuntu 系统已足够服务器部署。

    本文将详细介绍如何在 Linux 系统上实现潜渊症(Barotrauma)服务器的高可用部署,涵盖以下两种主流方案:

  • 使用 MCSM 面板的 Docker 容器部署
  • Docker Compose + Dockerfile 部署(K8S):请见 P2

  • 当前方案的高可用性定位

    当前方案基于 MCSM 面板 + Docker 容器 实现了基础层面的容错能力,适用于个人玩家或小型团队的轻量级部署需求。其核心高可用性设计包括:

  • 容器自动重启 :通过 MCSM 面板配置的「自动重启」策略,实现服务崩溃后的快速恢复。
  • 数据持久化 :通过 Volume 挂载 /home/mcsm/barot_server 目录,保障配置文件与存档数据不丢失。
  • 基础健康检查 :手动执行 nc -uvz 检查 UDP 端口状态,辅助判断服务存活。
  • 适用场景 :

    • 个人玩家开服娱乐
    • 小型社区(10人以下)稳定运行
    • 技术门槛较低的快速部署

    方案一:使用 MCSM 面板的 Docker 容器部署

    优势

    • 图形化界面操作,适合不熟悉命令行的用户
    • 支持容器管理、日志查看和进程控制
    • 易于实现基础高可用性(如自动重启、数据持久化)

    架构概述

    • MCSM 面板:提供可视化容器管理
    • Docker 容器:隔离服务器运行环境,支持跨平台部署
    • Volume 挂载:确保服务器配置和存档数据持久化
    • MCSM 自带功能:实现容器编排和监控

    部署步骤

    1. 安装 MCSM 面板和 Docker

    一行命令快速安装 MCSM

    sudo su -c "wget -qO- https://script.mcsmanager.com/setup_cn.sh | bash"

    安装后的使用方法

    systemctl start mcsm-{web,daemon} # 开启面板
    systemctl stop mcsm-{web,daemon} # 关闭面板

    说明:

    • 脚本仅适用于 Ubuntu/CentOS/Debian/Arch Linux
    • 面板代码与运行环境自动安装在 /opt/mcsmanager/ 目录下
    • 如需手动安装,参考:
      • 快速开始 | MCSManager
      • MCSManager/README_ZH.md

    安装 Docker 并配置镜像加速

    bash <(curl -f -s –connect-timeout 10 –retry 3 https://linuxmirrors.cn/docker.sh) \\
    –source mirrors.tencent.com/docker-ce \\
    –source-registry docker.1ms.run \\
    –protocol https \\
    –install-latested true \\
    –close-firewall false \\
    –ignore-backup-tips

    参考来源:

    • 国内 Docker 镜像加速列表 – 知乎

    2. 创建潜渊症服务器实例

    登录 MCSM 面板 访问 http://<服务器IP>:23333

    创建数据持久化目录

    sudo mkdir /home/mcsm/
    sudo mkdir /home/mcsm/barot_server
    sudo chmod 777 /home/mcsm/barot_server

    新建实例

  • 点击 “创建实例”

  • 选择 Steam 游戏服务器 > 使用 Docker 镜像快速部署

  • 填写以下关键信息:

    • 实例名称:任意

    • 镜像名称:cm2network/steamcmd:latest

    • 数据储存目录:/data

    • 勾选:变更容器默认工作目录

    • 启动命令(暂时使用):bash

    • 服务端文件目录:/home/mcsm/barot_server

      [!NOTE]

      确保信息如图所示

    QQ20250616-112122

  • 确认信息无误后点击: 创建实例 → 选择 Steam 游戏服务器 → 使用Docker镜像快速部署→前往实例控制台 → 开启

    进入实例终端后,输入以下命令

    cd /home/steam/steamcmd/
    # 确保该目录下可以看到以下文件:
    # linux32 linux64 package public siteserverui steam.sh steamcmd.sh steamservice.so
    ./steamcmd.sh +force_install_dir ./barotrauma-server +login anonymous +app_update 1026340 validate +exit

    # 将服务端文件复制到持久化目录
    cp -r ./barotrauma-server /data

    # 进入持久化储存的服务端目录
    cd /data/barotrauma-server

    # 首次启动会提示找不到 serversettings.xml 文件(正常现象)
    ./DedicatedServer

    输出示例:

    Couldn't load xml document "serversettings.xml"! {Could not find file '/data/barotrauma-server/serversettings.xml'.}
    WARNING: File "serversettings.xml" not found. Starting the server with default settings.

    退出服务端并配置文件

  • 输入 exit 命令退出服务端
  • 点击 右上角关闭实例
  • 点击 文件管理 > barotrauma-server 目录
  • 搜索 serversettings.xml 文件并打开编辑
  • 建议RequireAuthentication规则改为False,其余配置自行更改,不是本次部署的重点

    <?xml version="1.0" encoding="utf-8"?>
    <serversettings
    port="27015"
    queryport="27016"
    password="123456" #(可选)设置密码

    ServerName="Server"
    ServerMessageText="这里填写服务器简介"
    IsPublic="False"
    TickRate="20"
    MaxLagCompensation="150"
    RequireAuthentication="False" #将这里改为False
    RandomizeSeed="True"
    UseRespawnShuttle="True"
    RespawnInterval="300"
    MaxTransportTime="180"

    然后点击应用实例设置,在基础设置中将启动命令更改为/data/barotrauma-server/DedicatedServer;然后点击容器化,点击开放端口的编辑选项

  • 点击 基础设置
  • 将启动命令更改为:/data/barotrauma-server/DedicatedServer
  • 点击 容器化 > 开放端口 > 编辑
  • 添加端口映射:
    • 27015:27015(协议:UDP)
    • 27016:27016(协议:UDP)
  • QQ20250616-124741

    如图添加端口映射

    完成以上操作后: 点击 确定 → 保存 → 启动实例 服务器连接地址为:你的 IP:27015


    3. 实现高可用性
    • 自动重启策略: 在 MCSM 中设置实例重启策略为 “自动重启” 和 “自动启动”

    • 兼容性配置: 关闭 仿真终端

    • 健康检查: 定期执行以下命令检查 UDP 端口:

      nc -uvz your_IP 27015

    • 数据备份: 定期备份宿主机 /home/mcsm/barot_server 目录


    4. 内网穿透与公网访问

    自行配置穿透工具

    开放防火墙:

    sudo ufw allow 27015/udp
    sudo ufw allow 27016/udp


    方案二:Docker Compose + Dockerfile 部署(K8S)

    因篇幅所限,请见《Barotrauma_Docker_Compose_部署指南_P2.md》


    常见问题与解决方案

    问题现象解决方案
    XML 格式错误 使用在线工具修复,确保 <ServerSettings> 为唯一根节点
    客户端连接失败 检查 UDP 端口映射,关闭 Steam 认证(<RequireAuthentication>false</RequireAuthentication>)
    容器自动退出 确保 DedicatedServer 有执行权限:chmod +x DedicatedServer
    防火墙限制 开放 UDP 端口:sudo ufw allow 27015/udp

    总结与最佳实践建议

    方案适用场景优点缺点
    MCSM 面板部署 快速搭建、图形化操作 简单易用、内置管理功能 灵活性较低,依赖面板功能
    Docker Compose + Dockerfile 自定义部署、CI/CD 集成 灵活、支持多容器编排 配置复杂,需熟悉 Docker

    最佳实践建议:

  • 优先使用 MCSM 面板:适合快速部署和日常管理
  • 进阶使用 Docker Compose:适合需要自定义配置、自动化部署和集群管理的场景
  • 高可用性扩展:结合 Docker Swarm 或 Kubernetes 实现负载均衡和故障转移

  • 版本迭代说明

    • 当前版本:v1.0(2025-06-16)
    • 更新日志:新增内网穿透配置指引、优化防火墙规则示例

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Linux 下 Barotrauma(潜渊症)服务器的高可用部署方案
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!