Minecraft 服务器被 DDoS 攻击怎么办?症状、止血与防护

2026-11-01更新于 2026-11-02故障处理约 9 分钟

MC 服务器被打,症状和别的游戏不太一样:后台看 CPU 不高、内存也正常,但玩家就是进不来,TPS 掉到个位数。很多服主第一反应是"服务器配置不够",加钱升配之后发现一点用没有——因为问题不在服务器上。

先看一个判据:如果服务器本地 ping 127.0.0.1 正常、后台命令不卡,但玩家从外网连不上、或者连上就掉,八成是被打了,不是配置问题。

MC 服务器为什么特别容易被打

这不是运气问题,是 MC 的架构决定的:

  1. 端口必须公开。Java 版默认 25565,基岩版 19132,玩家要连就得知道 IP 和端口,等于把门牌号贴在公告栏上。
  2. 服务器列表站会公开 IP。mcbbs、各种服务器导航站、以及 MC 自带的服务器列表 ping,都能反查出真实 IP。
  3. 玩家圈子小、恩怨多。服与服之间抢玩家、玩家和服主闹矛盾,攻击成本又低(网上几十块就能买一小时打手),所以报复性攻击特别多。
  4. 单包成本极低。MC 的 UDP 查询协议(Query)和基岩版协议都是无连接的,伪造源 IP 打过来,服务器连"谁打的"都不知道。

五种常见攻击,症状不一样

攻击方式玩家侧表现后台能看到什么
UDP Flood 全部掉线,重连超时 带宽跑满,网卡出口打满,CPU 反而不高
TCP 连接耗尽 卡在"正在连接服务器",进不去 大量 SYN_RECV 状态连接,netstat 一片 SYN
假人攻击(bot join) 在线人数虚高,真人被挤掉线 登录日志刷屏,大量陌生 ID 进服又秒退
Query 放大 间歇性卡顿,TPS 抖动 Query 端口(默认 25565 UDP)收到异常查询
MOTD 压测 服务器列表里显示离线 服务器列表 ping 请求暴涨

其中假人攻击最容易被误判。它不占带宽、不打满 CPU,就是不停地模拟玩家登录。原版服务端每个登录都要走一次加密握手 + 世界数据下发,几十个假人同时进就能把主线程拖死。这类攻击靠加带宽、加配置完全无效,必须在连接层做人机识别。

先止血,四步

第一步:确认是不是攻击

在服务器上跑:

# 看当前连接数和状态分布
ss -s
ss -ant | awk '{print $1}' | sort | uniq -c | sort -rn

# 看实时带宽(哪个网卡在跑)
iftop -i eth0 -n

# MC 专用:看 TPS 和在线人数是否异常
# 后台执行 /tps 和 /list

如果 ss -ant 里 SYN_RECV 上千、或者 iftop 显示入向流量远超正常峰值,基本可以确定。

第二步:别急着换 IP

换 IP 只对"IP 已泄露且攻击者只认 IP"的情况有用。MC 的攻击者通常会盯着服务器列表,你换了 IP 只要重新上列表,几小时内又被找到。先藏,再换才有意义——具体见服务器被攻击后要换 IP 吗。

第三步:关掉不必要的公开入口

# server.properties 里关掉 query,减少一个放大面
enable-query=false

# 如果不用 RCON,也关掉
enable-rcon=false

同时把 online-mode 保持为 true。关掉正版验证会让假人攻击成本更低——攻击者不用买正版账号就能批量进服。

第四步:上防护

MC 的防护有一个特殊要求:必须同时支持 TCP 和 UDP。Java 版走 TCP 25565,基岩版走 UDP 19132,很多只做 HTTP 防护的 CDN 根本接不了。选择时确认两点:

  • 是否支持自定义端口转发(不是只给 80/443)
  • 是否有连接层的人机校验,能挡住假人

游戏盾怎么接 MC

接入流程和普通游戏一样,三步:

  1. 加源机。填你的 MC 服务器内网或公网 IP + 25565 端口。
  2. 选协议。Java 版选 TCP,基岩版选 UDP,双版本都开就两个都加。
  3. 改指向。把域名解析或启动器里的地址改成盾机地址,玩家侧不用改任何东西。

接完之后,玩家看到的 IP 是盾机 IP,你的真实 IP 从链路上消失。攻击者打盾机,清洗后再回源,源站只收到正常流量。

一个细节:MC 的玩家会用 ping 或服务器列表测延迟,接盾后这部分延迟会增加盾机到源机的那一跳。国内同城节点通常增加 3-8ms,跨省 10-20ms。如果服里有 PVP 竞技,建议选离源机同城的节点。

防不住的情况有哪些

说点实话,这几种情况防护效果会打折:

情况为什么难防怎么办
攻击者是你服里的玩家,知道你的管理后台地址 后台端口暴露在外,防护只护了游戏端口 后台走内网 / 加 IP 白名单 / 上 VPN
用插件漏洞打(如某些老版本 Bukkit 插件 RCE) 这是应用层漏洞,不是流量攻击 升级插件、关掉不用的插件,防护层帮不了
超大流量(T 级)持续打 超出清洗能力 选清洗能力足够大的方案,或临时切高防
攻击者同时打你的域名和论坛 论坛通常没做防护 论坛单独上 CDN + WAF

一个务实的建议

MC 服主最容易犯的错,是"被打一次买一次高防",钱花了不少,下次照样被打。原因是每次都在被动应对,没有解决IP 暴露这个根因。

正确的顺序是:先把真实 IP 藏起来(接防护),再考虑换 IP、加配置。IP 一旦藏住,攻击者只能打盾机,而盾机的清洗能力是你可以按需选择的。

如果不确定自己的服适合哪种方案,可以说一下在线峰值、Java 版还是基岩版、有没有跨服,我们给具体建议——联系方式在这里。

想先验证线路质量?不限时长的免费调试实例,规格与个人版一致,不自动转正、不产生费用。
领取调试实例