GSManager(Game Server Manager)是一款开源的、基于 Web 的游戏服务器管理面板,社区中也常被称为 GSM3。它把 SteamCMD、游戏服务端进程、文件管理、定时任务、备份恢复、多实例隔离等能力统一收敛到一个浏览器界面里,让你在绿联私有云(NAS)上也能像使用面板一样,一键部署《幻兽帕鲁》《我的世界》《方舟》《雾锁王国》《CS2》等热门联机游戏服务端,彻底告别手敲命令行。
本文以绿联 Pro(UGREEN NAS)为例,使用 Docker Compose 方式部署 GSManager3 容器,并逐行拆解这份 Compose 配置文件的每一项参数,帮助你一次性部署成功。
1、容器简介
| 项目 | 说明 |
| 镜像名称 | xiaozhu674/gameservermanager:latest |
| 容器名 | GSManager3 |
| 管理面板端口 | 3022 |
| 游戏服务端口 | 27015(Steam 游戏默认端口,可按需增减) |
| 数据目录 | ./data(面板配置 / 游戏文件) |
| 访问地址 | http://NASIP:3022 |
2、部署项目
2.1、准备工作
在绿联 NAS 的「文件管理」中,先创建一个用于存放本项目数据的目录,例如 /volume1/docker/gsm3(实际路径请以你自己的存储空间为准)。GSManager 会在首次启动时自动在该目录下生成 data 子目录,用于存放面板配置与下载的游戏服务端文件。请确保该目录剩余空间充足——大型游戏(如方舟、帕鲁)服务端动辄 20~50GB。
2.2、Compose 配置
在绿联 NAS 的「Docker」应用中选择「项目 / Compose」,把下面的配置完整粘贴进去。
services:
management_panel:
image: xiaozhu674/gameservermanager:latest
container_name: GSManager3
restart: unless-stopped
network_mode: host
user: root
stdin_open: true
tty: true
ports:
- "3022:3022"
- "27015:27015"
volumes:
- ./data/data:/home/.config
- ./data/data:/home/.local
- ./data/file:/home/steam/games
- ./data/data:/root/.config
- ./data/data:/root/.local
- ./data/file:/root/steam/games
- ./data/gsm3:/root/server/data
environment:
- SERVER_PORT=3022
- TZ=Asia/Shanghai
3、配置逐项详解
3.1、服务与镜像
services::Compose 的顶层服务定义块,management_panel是服务名(可自定义,仅作标识)。image: xiaozhu674/gameservermanager:latest:指定拉取的镜像,:latest表示始终使用最新版本;若追求稳定性,可改为某个固定版本号标签。container_name: GSManager3:指定容器名称,便于在 Docker 列表中快速识别与管理。
3.2、重启策略
restart: unless-stopped:表示除非手动停止容器,否则容器退出时(包括 NAS 重启、Docker 服务重启)都会自动重新拉起。这是自托管服务推荐的重启策略,可保证面板 7×24 小时在线。
3.3、网络模式(关键)
network_mode: host:使用宿主机(主机)网络模式,容器与 NAS 共享同一个网络命名空间。host 网络模式下,容器使用的所有端口默认全部开放,无需在 Docker 或 NAS 上额外做端口映射配置。对于游戏服务端而言,这一点非常重要:
- 游戏服务端往往会用到大量动态端口(如 Steam 的查询端口、语音端口等),host 模式下这些端口会随容器进程自动对外可用,无需逐个手动映射,也就不存在因端口未映射导致联机失败的问题。
- 主机模式下,容器直接监听 NAS 的 IP,玩家只需连接
NAS的IP:游戏端口即可。
所以本配置文件中的 ports: 端口映射并不会真正生效(Docker 在 host 模式下会忽略它),也无需依赖它来开放端口。此处保留只是为了方便自己查看记录——把该容器涉及的关键端口(面板 3022、游戏 27015)写在配置里,日后翻阅或迁移时一目了然。
3.4、容器运行身份与交互
user: root:以 root 用户运行容器。GSManager 需要通过 SteamCMD 安装游戏、写入文件、管理子进程,因此使用 root 可以避免大量权限问题(也正因如此,请务必做好 NAS 的网络安全与端口暴露管理)。stdin_open: true与tty: true:为容器开启标准输入与伪终端(等价于docker run -i -t)。许多游戏服务端进程需要一个「前台终端」才能稳定运行,同时这也方便你通过docker attach进入容器查看实时日志、响应交互式命令。
3.5、目录挂载(重点)
挂载规则是 宿主机路径:容器内路径。本配置把「面板数据」与「游戏文件」分门别类地持久化到本地,容器重建时数据不会丢失:
| 宿主机路径 | 容器内路径 | 作用 |
./data/data | /home/.config | steam 用户配置目录 |
./data/data | /home/.local | steam 用户本地数据 |
./data/file | /home/steam/games | steam 用户游戏文件目录 |
./data/data | /root/.config | root 用户配置目录 |
./data/data | /root/.local | root 用户本地数据 |
./data/file | /root/steam/games | root 用户游戏文件目录 |
./data/gsm3 | /root/server/data | GSManager 面板自身的数据目录 |
几点说明:
- 为什么
/home和/root各挂一份?GSManager 内部可能以不同用户身份执行任务,同时覆盖两处配置与游戏目录,可保证无论以哪个用户运行,配置与游戏文件都能稳定落到宿主机,避免「面板里下的游戏重启后消失」。 ./data/gsm3:/root/server/data是最关键的一项——面板的账号、站点配置、服务端实例元数据都保存在这里,迁移和备份时优先备份该目录。./data是相对路径,相对于 Compose 文件所在目录。建议直接使用绝对路径(如/volume1/docker/gsm3/data/data),避免因工作目录变化导致挂载「挂空」。
3.6、环境变量
SERVER_PORT=3022:指定面板 Web 服务的监听端口,需与访问端口一致。如无特殊需求保持 3022 即可;若修改,记得同步调整访问地址。TZ=Asia/Shanghai:设置容器时区为东八区,确保日志时间、定时任务(如自动备份、定时重启)按北京时间执行。
4、启动与访问
配置粘贴完成后,点击「部署 / 启动」,绿联 Docker 会自动拉取镜像并创建容器。首次拉取镜像体积较大,请耐心等待。
启动成功后,在浏览器访问:
http://NAS的IP地址:3022
首次进入需要设置管理员的用户名与密码。登录后即可在面板中安装 SteamCMD、添加游戏服务端实例、配置端口与启动参数。
5、注意事项
- 安全第一:容器以 root 运行且使用 host 网络,请勿将 3022 面板端口直接暴露到公网;如确需远程管理,建议仅在内网可信环境访问,并为面板设置强密码。
- 端口规划:host 模式下游戏服务端会直接占用 NAS 端口,多开实例时注意各游戏端口不要冲突(尤其 27015 这类默认端口)。
- 性能与散热:游戏服务端对 CPU 与内存占用较高,建议在 NAS 上监控资源使用,避免影响其他服务(如影音、同步)。
- 数据备份:定期备份
./data目录,尤其是./data/gsm3面板数据与./data/file游戏存档。 - 防火墙:请确认 NAS 防火墙以及路由器端口转发规则已放行所需游戏端口,否则外网玩家无法连接。
至此,绿联 Pro 上的 GSManager3 游戏服务器管理面板就部署完成了,接下来就可以在浏览器里愉快地开服了。
绿联Pro 部署 GSManager3 游戏服务器管理面板,浏览器一键开服
https://www.hcjike.com/archives/gsm3-game-panel