目录
- 优势
- 架构概述
- 部署步骤
- 1. 安装 MCSM 面板和 Docker
- 2. 创建潜渊症服务器实例
- 3. 实现高可用性
- 4. 内网穿透与公网访问
背景与方案选择
近期,我的《潜渊症》网友们反馈游戏自带的 P2P 联机存在较高延迟,计划单独购置一台服务器,安装 Windows 系统、注册 Steam 账号并重新购买游戏。我认为这一方案过于冗余——我们现有的 主机上运行的 Ubuntu 系统已足够服务器部署。
本文将详细介绍如何在 Linux 系统上实现潜渊症(Barotrauma)服务器的高可用部署,涵盖以下两种主流方案:
当前方案的高可用性定位
当前方案基于 MCSM 面板 + Docker 容器 实现了基础层面的容错能力,适用于个人玩家或小型团队的轻量级部署需求。其核心高可用性设计包括:
适用场景 :
- 个人玩家开服娱乐
- 小型社区(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]
确保信息如图所示
确认信息无误后点击: 创建实例 → 选择 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.
退出服务端并配置文件
建议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;然后点击容器化,点击开放端口的编辑选项
- 27015:27015(协议:UDP)
- 27016:27016(协议:UDP)
如图添加端口映射
完成以上操作后: 点击 确定 → 保存 → 启动实例 服务器连接地址为:你的 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 |
最佳实践建议:
版本迭代说明
- 当前版本:v1.0(2025-06-16)
- 更新日志:新增内网穿透配置指引、优化防火墙规则示例
评论前必须登录!
注册