Minecraft 之外的游戏服务器
如何在 VPS 上托管 CS2、Rust、Terraria、Valheim 或 Palworld 服务器:档位要求、通过 SteamCMD 安装、端口以及常见问题。
更新于 2026年8月23日
大多数游戏服务器都通过 SteamCMD 安装,并作为普通的 Linux 服务运行。VDS 的完整 root 权限让您可以运行任何程序——唯一的限制是内存、核心数量,以及许多游戏的主循环只使用单核这一事实。
什么限制了什么
| 游戏 | 内存 | 说明 |
|---|---|---|
| Terraria、Factorio | 1–2 GB | VDS-1 就够用 |
| Valheim | 4–6 GB | 随世界大小增长,VDS-2 或 VDS-3 |
| CS2 | 2–4 GB | 重要的是核心频率,而不是核心数量 |
| Rust | 12–16 GB | VDS-4 及以上,磁盘很快会被地图占满 |
| Palworld | 8–16 GB | 存在明显的内存泄漏,需要定期重启 |
Ryzen 9 7950X 提供高频率,因此在较低档位上,限制因素通常是内存,而不是 CPU。
通过 SteamCMD 安装
dpkg --add-architecture i386 && apt update
apt install -y steamcmd lib32gcc-s1
useradd -m -d /srv/game -s /bin/bash game
sudo -u game /usr/games/steamcmd \
+force_install_dir /srv/game/server \
+login anonymous \
+app_update 896660 validate \
+quit
每个游戏都有自己的 app ID。更新服务器使用相同的命令:它会下载已更改的文件。
服务与端口
[Service]
User=game
WorkingDirectory=/srv/game/server
ExecStart=/srv/game/server/start.sh
Restart=on-failure
RestartSec=20
[Install]
WantedBy=multi-user.target
游戏服务器通常监听 UDP,而不是 TCP——这是“服务器在运行但不可见”的常见原因:
ufw allow 2456:2458/udp
ss -ulpn | grep 2456
在 /hosting/vds/m/<id> 控制面板的“概览”标签页中获取公网 IPv4 地址。没有第二个地址,也没有 IPv6,因此请用不同的端口而不是不同的地址来区分同一游戏的两个服务器。
自动重启与备份
对于存在内存泄漏的游戏,请设置每晚重启:
0 6 * * * systemctl restart valheim
按计划复制存档并将其移出机器——没有自动备份或快照:
tar czf /srv/backups/world-$(date +%F).tar.gz /srv/game/server/saves
rsync -az /srv/backups/ backup@other-host:/store/
通用方法在数据库备份中有所描述——对存档文件同样适用。
常见错误
| 现象 | 原因 |
|---|---|
| 服务器在列表中不可见 | UDP 端口已关闭,或查询端口未开放 |
| 几小时后崩溃 | 内存泄漏,没有设置 MemoryMax,也没有每晚重启 |
steamcmd: not found | 该软件包从 multiverse 或 non-free 仓库安装 |
| 服务器满员时卡顿 | 单线程循环已占满一个核心——只有更高的频率才有帮助 |
| 空间不足 | 日志和旧存档;请留意“概览”中的磁盘使用环 |
以 root 身份运行游戏服务器是个坏主意:引擎经常在数据包解析方面出现漏洞。为每个游戏单独创建一个系统用户是必须的。