SERVER / QUICK START
Linux Dedicated Server Tutorial
Step-by-step Docker deployment guide covering setup, compose files, launch, maintenance, and common issues.
本教程将引导您在 Linux 服务器上通过 Docker 快速部署游戏服务器,即使您没有太多技术背景,也可以按照步骤完成。
1. 准备工作
- 可以是云服务器(阿里云、腾讯云、 AWS 等),也可以是本地虚拟机或物理机。
- 确保服务器拥有 公网 IP(如果您希望其他玩家通过互联网连接)。
- 系统推荐
Ubuntu 20.04或Ubuntu 22.04。
1.1 登录服务器
使用云服务商控制台提供的 SSH 工具,或者使用本地终端(Windows 的 PowerShell、macOS/Linux 的 Terminal)直接连接。
如果您更习惯图形化 SSH 客户端,也可以使用 WindTerm 等工具连接服务器。登录成功后,您会进入 Linux 命令行环境。
2. 安装 Docker 与 Docker Compose
2.1 安装 Docker
如果您使用的是云服务器自带的 Docker 容器服务,或当前系统已经预装并可正常使用 Docker,可以直接跳过本节,继续执行下一步。
执行以下命令下载并安装 Docker(适用于大多数 Linux 发行版):
curl -fsSL https://get.docker.com | bash 安装完成后,启动 Docker 并设置开机自启:
systemctl start docker
systemctl enable docker 验证安装是否成功:
docker --version 2.2 安装 Docker Compose
现代 Docker 通常已内置 docker compose 插件;如果没有,再安装独立的 docker-compose。本教程后续命令统一使用 docker-compose。如果您的系统仅支持插件形式,请自行替换为 docker compose。
方法一:检查内置插件
docker compose version 方法二:安装独立二进制
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version 3. 创建服务器目录与配置文件
3.1 直接使用登录后的默认目录
本教程默认直接使用登录后的默认目录存放 docker-compose.yml 和 .env,无需额外创建项目文件夹。如果您使用 root 登录,这个目录通常就是 /root。
3.2 创建 .env 环境变量文件
.env 文件用于存放服务器参数。请直接使用系统默认的 vi 编辑器创建:
vi .env 在打开的文件中,粘贴并修改以下内容(至少修改 GAME_TOKEN 和 GAME_IP):
# 游戏授权 TOKEN(必须向官方申请)
GAME_TOKEN=请填写您申请的TOKEN
# 服务器名称
GAME_NAME=我的服务器
# 公网 IP(务必填写实际公网 IP,不要用 127.0.0.1)
GAME_IP=203.0.113.10
# 端口(确保防火墙放行)
GAME_PORT=26666
# 最大玩家数
GAME_MAX_PLAYERS=64
# 设为公开服务器(出现在大厅列表)
GAME_PUBLIC=1
# 区域节点
GAME_NODE=AS
# 游戏规则(按需填写,不填则使用默认值)
# 例如:尸体消失时间、成长速度、队伍人数等
GAME_DEAD_TIME=1200
GAME_TEAM=4
GAME_CHILD=2
GAME_SAFE=30
GAME_MAP=Oasis
# 游戏模式,任选其一
# GAME_MODE_SANDBOX=1
# GAME_MODE_EVOL=1
# GAME_MODE_PRIMEVAL=1 保存并退出:先按 i 进入编辑模式,编辑完成后按 Esc,输入 :wq 并回车。完整参数说明请参考 《游戏服务器开服配置手册》。对于开关型参数,只要写变量名并赋值任意值(例如 1)就表示开启。
3.3 创建 docker-compose.yml 文件
vi docker-compose.yml services:
gameserv:
image: hkccr.ccs.tencentyun.com/mesozoicdawn/gameserver:latest
container_name: gameserv
env_file:
- .env
volumes:
- /data/Database:/app/GameServ_Data/Database
- /data/Mods:/app/GameServ_Data/StreamingAssets/Mods
- /data/Logs:/app/GameServ_Data/Logs
labels:
- com.centurylinklabs.watchtower.scope=gameserv
- com.centurylinklabs.watchtower.enable=true
environment:
- GAME_AUTO_RESTART=
restart: unless-stopped
stop_grace_period: 60s
healthcheck:
test: ["CMD", "pgrep", "-f", "GameServ.x86_64"]
interval: 50s
timeout: 5s
retries: 3
start_period: 60s
network_mode: host
mem_limit: 3500m
cpus: 1.8
watchtower:
image: containrrr/watchtower
container_name: watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/.docker/config.json:/config.json
environment:
- WATCHTOWER_POLL_INTERVAL=300
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_TIMEOUT=120s
command:
- "--label-enable"
- "--scope"
- "gameserv"
- "--interval"
- "300"
- "--cleanup"
- "--stop-timeout"
- "120s"
restart: unless-stopped
mem_limit: 128m
cpus: 0.2 network_mode: host表示容器直接使用主机网络,因此.env中的GAME_PORT必须与防火墙放行的端口一致。- 数据目录
/data/Database、/data/Mods、/data/Logs会保存在宿主机上。Docker 会自动创建这些目录,您无需手动创建。 mem_limit: 3500m表示最多使用 3.5G 内存,cpus: 1.8表示最多使用 1.8 核 CPU,请按服务器配置自行调整。
3.4 创建数据目录(可选)
虽然 Docker 会自动创建绑定目录,但手动创建可以帮助您更早确认权限是否正确:
mkdir -p /data/Database /data/Mods /data/Logs 4. 启动服务器
确认当前位于存放 docker-compose.yml 和 .env 的目录后执行。按照本教程默认流程,直接在登录后的默认目录执行即可;如果您使用 root 登录,通常就是 /root。
docker-compose up -d -d参数表示后台运行。- 首次启动会从镜像仓库拉取游戏服务器镜像,请耐心等待。
- 可以使用
docker-compose logs -f查看实时日志,按Ctrl+C退出日志查看,容器不会停止。
如果一切正常,服务器会完成启动并向官方大厅注册(前提是已配置有效的 GAME_PUBLIC 和 GAME_TOKEN)。
5. 防火墙放行端口
为了让其他玩家能够连接,请务必放行 .env 中设置的 GAME_PORT(默认 26666)对应的 UDP 端口。
- 如果使用云服务器,请在安全组中添加 UDP 端口放行规则。
- 如果服务器启用了系统防火墙(如
ufw),执行以下命令:
ufw allow 26666/udp 6. 日常管理命令
| 操作 | 命令 |
|---|---|
| 启动服务器 | docker-compose up -d |
| 停止服务器 | docker-compose down |
| 重启服务器 | docker-compose restart |
| 查看日志 | docker-compose logs -f --tail=100 |
| 更新镜像并重启 | docker-compose pull 然后 docker-compose up -d |
| 进入容器内部 | docker exec -it gameserv bash |
- 停止服务器时,Docker 会预留 60 秒保存数据,请勿强制
kill。 watchtower容器会自动监测镜像更新,并在 5 分钟间隔内自动拉取新版本并重启服务。
7. 如何修改配置
- 执行
cd ~后,使用vi .env打开配置文件。 - 保存后执行
docker-compose down,再执行docker-compose up -d重新加载环境变量。
必须先 down 再 up,直接 restart 可能不会重新读取新的环境变量。
8. 常见问题
8.1 服务器启动后在大厅搜不到?
- 检查
.env中的GAME_TOKEN是否填写正确,并确认已向官方申请。 - 检查是否设置了
GAME_PUBLIC=1。 - 检查服务器公网 IP 是否与
GAME_IP一致,可使用curl ifconfig.me查看。 - 检查防火墙和安全组是否已经放行 UDP 端口。
- 查看日志:
docker-compose logs -f gameserv。
8.2 端口被占用?
修改 .env 中的 GAME_PORT 为其他端口,并同步更新防火墙放行规则。
8.3 内存不足导致容器退出?
- 修改
docker-compose.yml中的mem_limit。 - 适当降低
GAME_MAX_PLAYERS等高消耗参数。
8.4 如何安装 MOD?
将 MOD 文件放入宿主机的 /data/Mods 目录,并在 .env 中添加 GAME_MODS=Mod名称1,Mod名称2,然后重启服务器。
8.5 数据如何备份?
备份宿主机的 /data/Database 目录即可,该目录包含玩家角色、巢穴、龙蛋等数据。建议定时打包并上传至云存储。
9. 获取帮助
- 查阅完整参数文档:《游戏服务器开服配置手册》。
- 加入官方 Discord 社区或 QQ 群,获取最新镜像地址和 TOKEN 申请方式。