摘要:以下为您撰写的专业技术文章:centos搭建mc服务器搭建Minecraft(我的世界)作为全球最受欢迎的沙盒游戏之一,其多人联机体验依赖于稳定可靠的服务端环境。CentOS 作为企业级 Linux 发行版,凭借其出色的稳定性、长期支持特性...
以下为您撰写的专业技术文章:
centos搭建mc服务器搭建
Minecraft(我的世界)作为全球最受欢迎的沙盒游戏之一,其多人联机体验依赖于稳定可靠的服务端环境。CentOS 作为企业级 Linux 发行版,凭借其出色的稳定性、长期支持特性和丰富的软件源生态,成为众多玩家与工作室搭建 服务器 的首选操作系统。本文将以 CentOS Stream 为例,完整讲解从系统初始化、Java 环境部署、Minecraft 服务端运行,到 域名主机 解析、开机自启与性能调优的全流程,帮助你打造一个低延迟、高可用的专属 MC 联机世界。

在正式开始之前,我们需要先完成服务器的规划与选型。MC 服务端是典型的"吃单核主频 + 吃内存"型应用,实体机或云主机的配置直接决定了后续能承载的玩家数量与渲染距离。以下为常见玩家规模对应的硬件配置推荐表:
| 玩家规模 | CPU 核心数 | 内存容量 | 硬盘类型 | 公网带宽 | 适用服务端 |
|---|---|---|---|---|---|
| 1~5 人(生存小服) | 2 核 | 2~4 GB | 20 GB SSD | 1~3 Mbps | Vanilla / Paper |
| 5~15 人(中型社区) | 4 核 | 4~8 GB | 40 GB SSD | 3~5 Mbps | Paper / Spigot |
| 15~30 人(大型多人) | 4~8 核 | 8~12 GB | 50 GB NVMe | 5~10 Mbps | Paper + BungeeCord |
| 30 人以上(集群) | 8 核+ | 16 GB+ | 100 GB NVMe | 10 Mbps+ | Velocity 群组服 |
需要注意:CentOS 7 已于 2024 年 6 月 30 日停止维护(EOL),新部署建议选用 CentOS Stream 8/9 或 Rocky Linux / AlmaLinux 等 RHEL 兼容发行版。若你的域名主机部署在国内云平台(如阿里云、腾讯云),还需提前完成 ICP 备案,否则 80/443 等端口将被拦截;而 MC 默认通信端口 25565 虽不受备案限制,但建议同步备案以便后续绑定 Web 面板。
第一步是完成系统初始化与安全基线配置。使用 SSH 密钥登录到你的 CentOS 服务器后,首先执行系统更新:CentOS Stream 8 使用 dnf update -y,CentOS 7 使用 yum update -y。为避免以 root 身份直接运行游戏进程带来的安全风险,应创建专用普通用户(例如 useradd -m mcadmin 并加入 wheel 组)。同时需调整交换分区:当物理内存不足时,MC 服务端极易因 OOM(内存溢出)而崩溃,建议为小内存机器创建 2~4 GB 的 swap 文件。
第二步是部署 Java 运行环境。Minecraft 不同版本对 JDK 的要求差异明显,选错版本会导致服务端无法启动。版本对应关系如下表所示:
| Minecraft 版本 | 最低 JDK 要求 | 推荐 JDK 版本 | CentOS 安装命令(dnf) |
|---|---|---|---|
| 1.8.9 ~ 1.16.5 | JDK 8 | java-1.8.0-openjdk | dnf install java-1.8.0-openjdk-headless |
| 1.17 ~ 1.20.4 | JDK 16 | java-17-openjdk | dnf install java-17-openjdk-headless |
| 1.20.5 及以上 | JDK 21 | java-21-openjdk | dnf install java-21-openjdk-headless |
| Paper 1.20+(模组整合) | JDK 21 | Temurin 21(LTS) | 采用 Adoptium 官方 tar 包解压部署 |
安装完成后使用 java -version 校验版本。若服务器上需要同时运行多个不同版本的 MC 实例,可通过 alternatives 命令管理多版本 JDK 的切换,或在启动脚本中通过完整路径指定 java 可执行文件。
第三步是获取并首次启动服务端。以 Paper(高性能 Spigot 分支,推荐生产环境使用)为例:在 /opt/mcserver 目录下通过 wget 下载 paper-x.x.x.jar,首次运行 java -Xmx2G -jar paper-1.21.4.jar nogui,进程会在生成 eula.txt 后退出。使用 vim 将其中的 eula=false 改为 eula=true 以同意最终用户许可协议,再次启动即可生成完整的 world 存档目录与 server.properties 配置文件。生产环境建议使用 tmux 或 screen 会话来挂起前台进程,避免 SSH 断开导致服务端关闭。
第四步是配置文件与 JVM 参数调优。server.properties 是控制游戏行为的核心文件,关键参数推荐如下:
| 参数名 | 功能说明 | 小型服推荐值 | 大型服推荐值 |
|---|---|---|---|
| server-port | 服务端端口 | 25565 | 25565(或自定义) |
| max-players | 最大家数 | 5~10 | 20~50 |
| view-distance | 区块渲染半径 | 6 | 8~10 |
| simulation-distance | 实体模拟半径 | 4 | 6 |
| white-list | 白名单开关 | true | true |
| online-mode | 正版验证 | true | true(若为离线服设 false) |
| enable-rcon | 远程管理端口 | false | true(配合面板使用) |
| motd | 服务器列表显示文本 | 自定义 | 自定义(支持 § 彩色符号) |
JVM 层面建议采用社区公认的 Aikar's G1GC 参数(针对 Paper/Spigot 优化):-Xms 与 -Xmx 设为相同值以避免堆动态扩展开销,并加入 -XX:+UseG1GC、-XX:+ParallelRefProcEnabled、-XX:MaxGCPauseMillis=200 等关键开关。4GB 内存服务器的推荐启动参数可参考下表:
| JVM 参数 | 作用说明 | 建议值 |
|---|---|---|
| -Xms / -Xmx | 初始/最大堆内存 | 物理内存的 70%~80% |
| -XX:+UseG1GC | 启用 G1 垃圾收集器 | 默认开启 |
| -XX:+UnlockDiagnosticVMOptions | 解锁诊断参数 | 配合后续参数 |
| -XX:G1NewSizePercent | 新生代占比下限 | 30~40 |
| -XX:MaxGCPauseMillis | 目标 GC 停顿时长 | 200 毫秒 |
| -XX:+AlwaysPreTouch | 启动时预分配内存页 | 开启(加快稳定期) |
第五步是防火墙与域名主机解析配置。默认端口 25565 需在 firewalld 中放行:firewall-cmd --permanent --add-port=25565/tcp 并 firewall-cmd --reload;若使用云服务器,还需在云平台控制台的安全组中同步放行 TCP 25565。接着进入你的域名主机服务商 DNS 管理后台,为服务器配置解析记录。标准做法是先添加 A 记录将主机名指向公网 IP,再添加 SRV 记录让玩家无需输入端口号即可连接:
| 记录类型 | 主机记录 | 记录值 | 优先级 | 权重 | 端口 | TTL |
|---|---|---|---|---|---|---|
| A | mc | 你的服务器公网 IP | - | - | - | 600 |
| SRV | _minecraft._tcp.mc | mc.你的域名.com | 0 | 5 | 25565 | 600 |
完成上述配置后,玩家在游戏内直接输入 mc.你的域名.com 即可免端口访问。域名主机的 DNS 解析通常在 10 分钟内全球生效,可通过 nslookup 或 dig 命令验证:dig mc.你的域名.com A 与 dig _minecraft._tcp.mc.你的域名.com SRV。需要强调的是,应选择具备 BGP 多线接入与 Anycast 解析能力的域名主机服务商,以降低跨运营商访问的解析延迟。
第六步是使用 systemd 实现开机自启与进程守护。在 /etc/systemd/system/ 目录下创建 mcserver.service,[Unit] 段声明 After=network.target,[Service] 段指定 User=mcadmin、WorkingDirectory=/opt/mcserver,ExecStart 写入完整的 java 启动命令,并加入 Restart=on-failure 与 RestartSec=10 实现崩溃自动拉起。[Install] 段设置 WantedBy=multi-user.target。随后执行 systemctl daemon-reload && systemctl enable --now mcserver。配合 rcon 协议,还可实现 systemctl stop 时优雅保存世界的关闭逻辑,避免强制 kill 导致区块损坏。
第七步是性能监控与日常运维。MC 服务端长期运行需关注 TPS(每秒刻数)这一核心指标——满值为 20 TPS,低于 19 即存在可感知卡顿。常用监控项与工具对照如下:
| 监控指标 | 查看方式 | 健康阈值 | 异常处理建议 |
|---|---|---|---|
| TPS / MSPT | Paper 端 /tps、/mspt 指令 | TPS ≥ 19 | 使用 spark 插件分析卡顿定位 |
| CPU 负载 | top / htop / vmstat | 负载 < 核心数 | 降低 view-distance 或升级主频 |
| 内存占用 | free -h / JVM 监控 | 堆使用率 < 85% | 调大 -Xmx 或排查内存泄漏插件 |
| 网络丢包 | mtr / ping 玩家客户端 | 丢包率 < 1% | 启用 TCP BBR 拥塞控制算法 |
| 磁盘 I/O | iostat -x 1 | util < 70% | 改用 NVMe 或优化自动保存频率 |
此外还需重视服务器安全加固:禁用 SSH 密码登录并仅允许密钥认证;安装 fail2ban 防止暴力破解;为每个玩家分配最小权限(推荐 LuckPerms 权限组);建立定期异地备份机制——可编写 shell 脚本,在每日低峰期对 world 目录进行 tar 打包并加密上传至对象存储,保留近 7~30 天的版本快照。
最后是常见故障排查。若玩家提示 "Connection refused",多为服务端未启动或防火墙未放行,可用 netstat -tlnp | grep 25565 确认端口状态;若出现 "java.lang.OutOfMemoryError",需调大 -Xmx 或检查是否存在刷实体卡顿;若域名始终无法解析,应检查域名主机处 DNS 解析记录是否填写正确、域名是否已过期或未完成实名认证;若正版玩家无法登录而离线模式正常,需排查服务器到 sessionserver.mojang.com 的 HTTPS 出站连通性。
总结而言,在 CentOS 上搭建 Minecraft 服务器是一项涵盖系统运维、JVM 调优、网络解析与安全防护的综合性工程。核心要点在于:选择与玩家规模匹配的硬件、安装版本匹配的 JDK、采用 Aikar 参数优化垃圾回收、通过 systemd 实现进程守护、并借助域名主机的 A 记录与 SRV 记录提供稳定易记的访问入口。完成搭建后,你还可以进一步扩展 Paper 插件生态(如 CoreProtect 回滚、AuthMe 登录验证)、部署 Velocity 群组实现多服集群、或接入 BlueMap 生成网页版 3D 地图,持续丰富玩家的联机体验。按照本文流程操作,即便是零基础的初学者,也能在 30 分钟内部署一个稳定运行的专属 MC 服务器。









