结论: 搭建游戏服务器的通用套路是"命令行启动 + 守护进程托管 + 端口放行":Minecraft Java 版用 Paper 服务端配 JVM 参数调优,Steam 系游戏(如 Palworld)用 SteamCMD 拉取专用服务端;再用 systemd 服务单元替代 screen 手动守护,并在云安全组与系统防火墙同时放行对应端口即可长期稳定运行。
引言:为什么游戏服务器喜欢"自己搭"
对中小服主和开黑小团体来说,租用游戏面板虽然省事,但价格高、可定制性差。自己用一台云服务器搭建游戏服务器,成本通常只有面板服的三分之一,还能自由装插件、改参数、做备份。真正的门槛不在"会不会敲命令",而在三件事:内存分配是否合理、端口是否真的放行、进程会不会因为 SSH 断开而退出。本文以 Ubuntu 24.04 LTS 为例,覆盖 Minecraft Java 版与 Palworld 两个最典型的场景,其余 Steam 系游戏流程基本通用。
搭建游戏服务器需要什么配置?
先给结论:绝大多数游戏服务端是单核性能 + 内存容量敏感型,而不是多核堆料型。下面是主流游戏服务端的推荐配置(截至 2026 年,按 10~20 人在线估算)。
| 游戏服务端 | CPU | 内存 | 带宽 | 默认端口 | 备注 |
|---|---|---|---|---|---|
| Minecraft Java 版(Paper) | 2~4 核,主频 ≥ 3.0 GHz | 4~8 GB | 5~10 Mbps | TCP 25565(RCON 25575) | 单线程重,插件多时内存吃紧 |
| Minecraft 基岩版 | 2 核 | 2~4 GB | 5 Mbps | UDP 19132 | 占用低 |
| Palworld(幻兽帕鲁) | 4 核 | 16~32 GB | 10 Mbps | UDP 8211、27015 | 内存泄漏明显,需定时重启 |
| CS2 社区服 | 4 核 | 8 GB | 20 Mbps | UDP/TCP 27015 | 128 tick 对 CPU 要求高 |
| Valheim | 2~4 核 | 4~8 GB | 5 Mbps | UDP 2456~2458 | 三个端口连续分配 |
选型要点:
- 主频优先于核心数:Minecraft 的服务端逻辑基本跑在单线程上,一颗 3.5 GHz 的 4 核通常比 2.4 GHz 的 8 核体验更好。
- 内存留 1~2 GB 给系统:不要把全部内存都划给 JVM,否则 OOM Killer 会直接杀掉进程。
- 带宽按"每人 50~100 kbps"估算,同时注意云服务器的出网带宽上限(1 Mbps ≈ 128 KB/s,10 人同时玩就可能跑满)。
第一步:准备系统环境与专用用户
游戏服务端绝不能用 root 跑。创建独立用户、独立目录,后续权限与备份都清晰。
sudo apt update && sudo apt upgrade -y
sudo apt install -y openjdk-21-jre-headless tmux screen curl wget jq unzip
# 为 Minecraft 创建专用用户与目录
sudo useradd -r -m -d /opt/minecraft -s /bin/bash minecraft
sudo mkdir -p /opt/minecraft/server
sudo chown -R minecraft:minecraft /opt/minecraft
# 关闭 swap 过度使用(Minecraft 场景建议设低,避免卡顿)
echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-game.conf
sudo sysctl --system同时确认系统时间同步(游戏服日志与存档时间戳依赖它):
sudo timedatectl set-timezone Asia/Shanghai
timedatectl status | grep -E 'NTP|Time zone'第二步:搭建 Minecraft Java 版服务器(Paper 服务端)
结论:生产环境不要用官方 vanilla 服务端,用 Paper(或其分支 Purpur),它对 TPS 的优化和插件兼容性最好。下面用 PaperMC 官方 API 自动拉取最新构建。
sudo -iu minecraft
cd /opt/minecraft/server
VERSION=1.21.4
BUILD=$(curl -s "https://api.papermc.io/v2/projects/paper/versions/${VERSION}" | jq -r '.builds[-1]')
curl -o paper.jar "https://api.papermc.io/v2/projects/paper/versions/${VERSION}/builds/${BUILD}/downloads/paper-${VERSION}-${BUILD}.jar"
# 首次启动会生成 eula.txt 与 server.properties
java -jar paper.jar --nogui
exit # 回到 root首次启动必然失败并提示同意 EULA,这是正常流程。修改配置后再启动:
sudo -iu minecraft bash -c 'cd /opt/minecraft/server && echo "eula=true" > eula.txt'
sudo tee /opt/minecraft/server/server.properties <<'EOF'
server-port=25565
max-players=20
view-distance=10
simulation-distance=6
level-type=minecraft:normal
spawn-protection=0
online-mode=true
enable-rcon=true
rcon.port=25575
rcon.password=改成强密码
EOF关键参数说明:
view-distance:视距,影响带宽与内存最大,10 是流畅与体验的平衡点;卡顿可降到 6。simulation-distance:实体运算范围,比视距小能显著降低 CPU 压力。online-mode:设为 false 即为离线模式(盗版可进),有安全风险,不建议。- RCON:远程控制台,用于脚本执行
save-all、定时备份,务必改默认密码。
第三步:JVM 参数怎么调才不卡
结论:Minecraft 服务端 90% 的"卡顿"来自垃圾回收(GC,Garbage Collection)停顿。社区公认的 Aikar's Flags 针对 G1 收集器做了调优,直接套用即可。
java -Xms6G -Xmx6G \
-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \
-XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -XX:+PerfDisableSharedMem \
-jar paper.jar --nogui调优要点:
-Xms与-Xmx必须相等,避免堆动态扩容带来的停顿;8 GB 内存的机器建议各设 6G,留 2 GB 给系统与页缓存。- 不要盲目加大内存:堆越大,单次 GC 扫描时间越长。10 人以下的服 4G 通常比 8G 更顺。
- 堆超过 12 GB 时把
G1HeapRegionSize调到 16M,否则区域数过多影响效率。 - 想进一步降负载,可用
-Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true让部分分析工具识别。
第四步:用 SteamCMD 搭建 Palworld 专用服务器
结论:所有 Steam 系游戏(Palworld、CS2、Valheim、ARK)的专用服务端都用同一套流程——SteamCMD 下载、脚本启动、systemd 托管。区别只在 App ID 和启动参数。
# 启用 32 位库支持
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 lib32stdc++6
sudo useradd -r -m -d /opt/steam -s /bin/bash steam
sudo -iu steam bash -c '
mkdir -p /opt/steam/palworld
steamcmd +force_install_dir /opt/steam/palworld \
+login anonymous +app_update 2394010 validate +quit
'Palworld 的专用服务端 App ID 是 2394010(截至 2026 年仍适用)。启动参数建议固定在脚本里,避免每次手敲出错:
sudo tee /opt/steam/palworld/start.sh <<'EOF'
#!/bin/bash
cd /opt/steam/palworld
./PalServer.sh \
-port=8211 \
-players=32 \
-useperfthreads \
-NoAsyncLoadingThread \
-multithreadingenabled \
-Epicasync
EOF
sudo chmod +x /opt/steam/palworld/start.sh
sudo chown -R steam:steam /opt/steam参数含义:
-port=8211:游戏连接端口(UDP),客户端连接时填IP:8211。-players=32:最大同时在线人数,超过配置会明显掉帧。-useperfthreads+-multithreadingenabled:启用多线程优化,对高核数机器收益明显。- Palworld 服务端存在已知内存增长问题,必须配置每日定时重启,否则 2~3 天后 OOM。
第五步:端口放行(云安全组 + 系统防火墙双层)
结论:游戏服务器连不上,八成是端口没放行,而且是"两层墙"都要开——云厂商的安全组和系统内的防火墙,任意一层挡住都不通。
# Ubuntu / Debian 使用 ufw
sudo ufw allow 25565/tcp comment 'Minecraft Java'
sudo ufw allow 25575/tcp comment 'Minecraft RCON'
sudo ufw allow 19132/udp comment 'Minecraft Bedrock'
sudo ufw allow 8211/udp comment 'Palworld game'
sudo ufw allow 27015/udp comment 'Palworld Steam query'
sudo ufw reload && sudo ufw status numbered
# CentOS / Rocky / AlmaLinux 使用 firewalld
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --permanent --add-port=8211/udp
sudo firewall-cmd --reload验证端口是否真的通(在另一台机器上测,别在本机测):
nc -vzu <你的公网IP> 8211 # UDP
nc -vz <你的公网IP> 25565 # TCP同时记得去云控制台的安全组里添加对应规则:协议选 TCP 还是 UDP 一定要看清楚,Palworld、基岩版、Valheim 都是 UDP,填成 TCP 是最常见的低级错误。
企业QQ咨询




