想用一台 VPS 管理 Minecraft、Rust、Palworld、CS2 等多个游戏服务器,Pterodactyl 是搜索量和实际使用率都很高的开源方案。它不是“装完面板就自动获得性能”,而是把用户、游戏实例、资源限制、文件、控制台和备份统一起来,真正运行游戏进程的仍然是你的 CPU、内存、磁盘和网络。
本文按 Pterodactyl 1.x 官方流程讲清 Panel 与 Wings 的分工、VPS 怎么选、域名和 HTTPS 怎么配,以及节点离线、端口不通、备份无法恢复时该查什么。
Pterodactyl 由两部分组成:
- Panel:Laravel Web 管理后台,保存用户、服务器、Egg、节点和权限数据。
- Wings:安装在游戏节点上的 Go 服务,通过 Docker 启停游戏容器。
Panel 中的 Node 对应一台运行 Wings 的服务器;Allocation 是分配给游戏服的 IP 与端口组合;Egg 则定义游戏镜像、启动命令、变量和安装脚本。
Panel 和 Wings 可以装在同一台 KVM VPS 上,适合个人服和小规模测试。需要托管多个用户或多台节点时,最好把 Panel、数据库与游戏节点分开,避免某个游戏服跑满 CPU 后连管理后台也打不开。
Panel 本身不重,游戏服才是资源大户。购买前先根据游戏、在线人数、插件和地图规模估算。
| 场景 | 建议起步配置 | 说明 |
|---|---|---|
| 只运行 Panel | 2 核 2GB、30GB SSD | Panel、MariaDB、Redis、Nginx |
| 小型 Minecraft 服 | 4 核 8GB、80GB NVMe | 适合少量玩家和轻量插件 |
| 多个游戏实例 | 6–8 核、16GB+、160GB NVMe | 需要为每个实例预留资源 |
| Rust、Palworld 等重型游戏 | 高频 CPU、16GB+、NVMe | 优先单核性能、磁盘和 DDoS 防护 |
官方明确提示:Wings 需要能正常运行 Docker 的 Linux。KVM 可以可靠工作;OpenVZ、Virtuozzo 和部分 LXC 环境往往缺少所需能力。购买前可运行:
systemd-detect-virt
如果结果是 openvz 或 lxc,先向服务商确认 Docker 和嵌套容器支持。更完整的游戏选机建议可参考 游戏服务器 VPS 推荐。
当前官方文档支持 Ubuntu 22.04/24.04、Debian 11/12/13,以及 RHEL、Rocky Linux、AlmaLinux 8/9。下面以 Ubuntu 24.04 为例。
建议准备两个域名:
panel.example.com:Panel 管理后台;node.example.com:Wings 节点。
常见公网端口包括:
- 80/443:Panel Web 与 HTTPS;
- 8080 或 8443:Wings HTTP/HTTPS API;
- 2022:Wings SFTP;
- 游戏端口:例如 Minecraft 常用 25565,但应以 Egg 和实际 Allocation 为准。
先检查冲突:
sudo ss -lntup | grep -E ':(80|443|8080|8443|2022)\b' || true
发现端口占用时不要直接停止未知进程,先按 VPS 端口被占用排查指南确认服务归属。
Pterodactyl Panel 当前需要 PHP 8.2 或 8.3、MySQL 5.7.22+ 或 MariaDB 10.2+、Redis、Web 服务器、Composer 2,以及 Git、curl、tar、unzip。Ubuntu 24.04 可以安装 PHP 8.3:
sudo apt update
sudo apt install -y \
php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
mariadb-server nginx redis-server tar unzip git curl
curl -sS https://getcomposer.org/installer \
| sudo php -- --install-dir=/usr/local/bin --filename=composer
创建数据库和独立用户,密码必须替换为随机强密码:
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY '替换为强密码';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
EXIT;
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
sudo curl -Lo panel.tar.gz \
https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
sudo tar -xzvf panel.tar.gz
sudo chmod -R 755 storage/* bootstrap/cache/
sudo cp .env.example .env
sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
sudo php artisan key:generate --force
APP_KEY 用于解密 API Key 等敏感数据。只备份数据库却丢失 .env,恢复后仍可能出现 Invalid MAC,因此立即把这一行保存到密码管理器或独立加密备份:
grep APP_KEY /var/www/pterodactyl/.env
继续配置环境、数据库和邮件:
sudo php artisan p:environment:setup
sudo php artisan p:environment:database
sudo php artisan p:environment:mail
sudo php artisan migrate --seed --force
sudo php artisan p:user:make
sudo chown -R www-data:www-data /var/www/pterodactyl/*
邮件建议使用 SMTP。初始化期间不要中断 migrate --seed --force,它会创建数据表并写入 Nests 与 Eggs。
Panel 的 Nginx 配置应以官方 Webserver Configuration 中与你系统匹配的模板为准,站点根目录必须指向:
/var/www/pterodactyl/public
先让 panel.example.com 指向 VPS,再申请 Let's Encrypt 证书。Panel 上 HTTPS 后,Wings 也必须使用与 Node FQDN 匹配的 HTTPS,否则浏览器和 Panel 会阻止不安全连接。
添加每分钟运行的计划任务:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
队列 Worker 的核心启动命令是:
/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
将官方 pteroq.service 放到 /etc/systemd/system/ 后启用:
sudo systemctl enable --now redis-server
sudo systemctl enable --now pteroq.service
如果定时任务不执行,依次查看 systemctl status pteroq、journalctl -xeu pteroq、PHP 版本与系统时区。
Wings 官方依赖只有 curl 与 Docker。生产环境更建议按 Docker 官方仓库安装;快速验证可使用:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker
sudo mkdir -p /etc/pterodactyl
sudo curl -L -o /usr/local/bin/wings \
"https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
在 Panel 后台进入 Admin → Nodes → Create New 创建节点,然后打开该节点的 Configuration,把配置保存到:
/etc/pterodactyl/config.yml
先用调试模式启动:
sudo wings --debug
确认没有报错后按官方 wings.service 创建 systemd 服务,并启用:
sudo systemctl enable --now wings
sudo systemctl status wings
进入 Nodes → 节点 → Allocation,填写服务器真实网卡 IP 和游戏端口范围。官方明确要求不要用 127.0.0.1 作为 Allocation。可用以下命令查看地址:
hostname -I | awk '{print $1}'
然后:
- 在 Admin 中选择 Servers 并创建服务器;
- 选择 Node、Allocation、Nest 和 Egg;
- 设置内存、磁盘、CPU 与备份数量;
- 确认 Docker 镜像和启动变量;
- 创建后在控制台观察安装输出。
不要把节点全部内存分完。宿主系统、Docker、Wings、Panel 和数据库都需要余量。公开托管时还应限制 CPU、磁盘与进程数量,防止一个用户拖垮整台机器。
只开放真实需要的端口:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 2022/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
如果 Wings 使用 8443,就不要再开放未使用的 8080。游戏端口应按 Allocation 精确开放,不要为省事放行全部端口。
节点显示红心或 “Cannot connect to server” 时,按顺序检查:
sudo systemctl status wings
sudo journalctl -u wings -n 100 --no-pager
sudo wings --debug
dig +short node.example.com
curl -vk https://node.example.com:8443
重点核对:
- Panel 中 Node Configuration 是否与
/etc/pterodactyl/config.yml一致; - Panel 使用 HTTPS 时,Wings 是否也使用有效证书;
- 8080/8443 与 2022 是否被防火墙、安全组或 NAT 拦截;
- Node FQDN 是否解析到正确 IP;
- Cloudflare 代理是否改变端口或 SSL 模式。
Cloudflare 不能替游戏流量隐藏节点 IP。Wings 即使走代理,玩家仍会直连游戏端口;真正的 DDoS 防护应由机房、服务商清洗或专用代理承担。
至少备份四部分:
- Panel 的 MariaDB/MySQL 数据库;
/var/www/pterodactyl/.env,尤其是APP_KEY;/etc/pterodactyl/config.yml;- Wings 的游戏数据与备份目录。
默认本地备份通过 Wings 保存,但和游戏数据放在同一块 VPS 磁盘上不能抵御整机故障。生产环境可在 Panel .env 中使用 S3 兼容备份:
APP_BACKUP_DRIVER=s3
AWS_DEFAULT_REGION=auto
AWS_ACCESS_KEY_ID=替换为访问密钥
AWS_SECRET_ACCESS_KEY=替换为秘密密钥
AWS_BACKUPS_BUCKET=替换为存储桶
AWS_ENDPOINT=https://你的S3兼容端点
设置备份后必须做恢复演练,确认数据库、APP_KEY、Egg 配置和游戏存档能一起恢复。可结合 VPS 备份恢复演练指南执行。
| 方案 | 优点 | 更适合 |
|---|---|---|
| Pterodactyl | 生态成熟、Egg 丰富、多节点与权限完整 | 多游戏、多用户、托管场景 |
| Pelican | 延续相似架构,项目较新 | 愿意评估新生态的用户 |
| PufferPanel | 部署和使用相对直接 | 家庭服、小规模自托管 |
| 厂商游戏面板 | 运维最省事 | 不想管理 Linux 和 Docker |
已经稳定运行 Pterodactyl 时,不要仅为界面变化仓促迁移。备份、监控、DDoS 防护和节点容量通常比更换面板更重要。
不必须。个人服可以同机部署;多节点或商业托管建议分离,避免游戏负载影响管理后台。
多数情况下不可靠。官方说明 OpenVZ、Virtuozzo 和部分 LXC 可能无法运行所需 Docker 功能,优先选择 KVM。
通常是 Wings 未运行、配置不一致、DNS 错误、证书无效,或 8080/8443 被防火墙拦截。
不能。它负责管理游戏容器,不替代机房级清洗、Anycast 防护或游戏流量代理。
因为加密数据还依赖原来的 APP_KEY。数据库、Panel .env、Wings 配置和游戏数据必须配套备份。
Pterodactyl 的难点不在下载 Panel,而在把 Web、数据库、Redis、队列、Wings、Docker、DNS、证书和游戏端口连成一条可靠链路。小规模部署可以从一台 4 核 8GB KVM VPS 开始;准备承载多个玩家或重型游戏时,应优先购买高频 CPU、NVMe、充足内存和真正具备 DDoS 防护的线路。
上线前最后做三件事:保存 APP_KEY、验证 S3 或异机备份能够恢复、从外网实测 Panel、Wings SFTP 和每个游戏 Allocation 端口。
