保护 RedM 服务器免受 DDoS 攻击
一台 RedM 服务器真正需要哪些端口,如何加固 FXServer 的 HTTP 端点、txAdmin 和那 32 个槽位,VORP 和 RSGCore 在这方面与 ESX 有何不同,以及攻击规模到什么程度就只能靠服务器前面的网络过滤。
一台 RedM 服务器如果在晚上会话进行到一半时消失,十分钟后又自己回来,问题很少出在硬件上。多数情况下是 30120 端口正在被攻击,而且时间恰好选在玩家最多的时候。本文讲的是怎样为 RedM 服务器做好 DDoS 防护:先是您不花额外费用就能自己加固的部分,然后是这些措施的物理上限,最后是当攻击比您的线路更大时,服务器前面的网络里必须发生什么。
本文所有内容针对运行在 Debian 12、Debian 13、Ubuntu 22.04 LTS 或 Ubuntu 24.04 LTS 上、带 gamename rdr3 的 FXServer。命令以 root 身份书写,普通用户请在前面加上 sudo。RedM 是 Cfx.re 为 Red Dead Redemption 2 做的修改版,也是 FiveM 的姊妹项目。两者跑在同一个服务器程序上,因此其中一部分网络技术确实完全相同。凡是相同的地方,这里只用一句话带过,详细部分见文章 保护 FiveM 服务器免受 DDoS 攻击。本文其余内容都是 RedM 特有的。
如果攻击正在进行:现在不要改动 server.cfg,也不要重启服务器。请先保存测量数据(见“收集测量数据”一节),攻击结束后这些数据就没有了。
RedM 服务器为什么这么常成为 DDoS 攻击的目标
一台 RedM 服务器是比它的玩家数看起来更值得打的目标,原因恰恰在于这个圈子规模小。2026 年 9 月,公开的服务器列表统计站点数到约 2000 台活跃的 RedM 服务器、约 1.24 万名同时在线玩家,相比之下 FiveM 有约 3.9 万台服务器、约 32.5 万名玩家。在 2000 台 RedM 服务器里打掉一台,从网上拿走的是整个圈子里明显更大的一块,而在 3.9 万台 FiveM 服务器里打掉一台就没有这样的分量。所以对一个想损害竞争项目的攻击者来说,这里的杠杆要大得多。
再加上社群的结构。RedM 角色扮演靠固定时间的固定场次维持,常常还要提前报名和审核角色。晚上 8 点的一次宕机打的不是随便哪些玩家,而正是为这一晚报了名的那些人。许多项目还是小预算的爱好项目,全靠一台便宜的服务器撑着,没有第二个实例可以切换。RedM 圈子里公开记录过的案例里,有连续几个月几乎每天一次的攻击波,把游戏服务器和另外一台独立的语音服务器同时打中。
技术上还要加一点:游戏流量走 UDP。UDP 是一种无连接的传输协议,没有服务器可以强制要求的连接建立过程,而且源地址可以伪造。因此攻击者既不必进入您的 RedM 服务器,也不必正确地跟它对话,就能制造负载。DDoS 攻击具体是什么、是怎么组织起来的,请看文章 什么是 DDoS 攻击?。
真正相关的那些端口
一台 RedM 服务器默认只绑定一个端口,而且两个协议都用。server.cfg 里为此写着:
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
set gamename rdr3
sv_enforceGameBuild 1491
sv_licenseKey "cfxk_..."
set gamename rdr3 这一行是唯一把 RedM 服务器和 FiveM 服务器区分开的东西。少了它,同一个 FXServer 就会以 GTA V 服务器的身份注册,RedM 客户端也连不上。RedM 没有自己的查询端口,也没有自己的 RCON 端口:服务器查询、连接建立、游戏流量和 RCON 全都走 30120 上那两条条目。这就是硬邦邦的数字情况:
| 指标 | RedM 上的取值 |
|---|---|
| 游戏流量 | 30120 UDP |
| 连接建立、服务器查询、HTTP 端点、RCON | 30120 TCP |
| 独立的查询端口 | 没有,查询走 30120 TCP |
| 独立的 RCON 端口 | 没有,RCON 就在同一个开放端口上 |
| txAdmin 面板 | 40120 TCP |
| VORP、RSGCore 和 RedEM:RP 的数据库 | 3306 TCP,应绑定到 127.0.0.1 |
| server.cfg 中的必需行 | set gamename rdr3 |
| 不启用 OneSync 时的槽位数 | 32 |
| 启用 OneSync 时的槽位数 | 48,配合 Element Club 最多 1024 |
| sv_enforceGameBuild 可用的游戏版本 | 1311、1355、1436、1491 |
| 授权密钥 | portal.cfx.re,格式为 cfxk_ 开头,共 33 个字符 |
| 针对角色扮演项目的典型攻击规模 | 5 到 50 Gbit/s |
| 64 字节时 1 Gbit/s 里每秒能装进的数据包 | 约 149 万个 |
上面提到的四个端口里,正好有两个属于公网:30120 TCP 和 30120 UDP。40120 端口和 3306 端口不属于公网,而 22 端口上的 SSH 应该限制到您自己的地址。这是 RedM 服务器上最常见、也最容易避免的错误,因为很多项目是拿一份现成的 txAdmin 配方起步的,之后再也没查过服务器对外提供了什么。
在花钱之前,您自己能做的事
这一节最长,而且是故意的。配置干净的 RedM 服务器能靠自己扛住小型和中型攻击,无论它放在谁那里。顺序也是特意安排的:先测量,再关闭,最后才限速。
1. 清点:到底有什么在监听?
在写下第一条规则之前,先看清楚您的服务器对外提供了什么。不要猜,要查:
ss -lntup
要看的是本地地址那一列。0.0.0.0:30120 和 [::]:30120 表示“整个互联网都能访问”,127.0.0.1:3306 表示“仅本机”,不需要防火墙规则。在一台 RedM 服务器上,除了 FXServer 之外,经常还会出现 40120 上的 txAdmin、3306 上的 MariaDB、用于项目网站的 Web 服务器,偶尔还有一个语音服务。从外面做一次端口扫描,就能看到攻击者眼中的样子:
nmap -Pn -p- --min-rate 1000 YOUR.SERVER.IP.ADDRESS
2. 只保留 30120 的 TCP 和 UDP 对外开放
对 RedM 来说,对外两条放行就够了,其余的要么收紧,要么干脆不公开。用 UFW 的写法如下,而且顺序必须完全照此执行,以免把自己关在门外:
ufw allow 22/tcp comment 'SSH'
ufw allow 30120/tcp comment 'RedM'
ufw allow 30120/udp comment 'RedM'
ufw allow from 203.0.113.10 to any port 40120 proto tcp comment 'txAdmin'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
请把 203.0.113.10 换成您自己的地址。如果您的宽带地址是动态变化的,这样做不方便,更好的办法见下一节关于 txAdmin 的部分。包含自救办法的完整说明见 设置 UFW 防火墙而不把自己关在门外。
数据库在任何情况下都不该暴露在公网上。VORP、RSGCore 和 RedEM:RP 都需要一个 MariaDB 或 MySQL,多数通过 oxmysql,连接字符串写在 server.cfg 里。这条连接是本地的,所以这个端口不需要从外面访问得到。请在 /etc/mysql/mariadb.conf.d/50-server.cnf 里确认其中写着:
bind-address = 127.0.0.1
3. 加固 FXServer 的 HTTP 端点
FXServer 会在 30120 的 TCP 那一半上回答 HTTP 请求,不需要任何人启动 Red Dead Redemption 2。请看看您的 RedM 服务器在那里对外送出了什么:
curl -s http://127.0.0.1:30120/info.json | head -c 600
curl -s http://127.0.0.1:30120/players.json | head -c 600
curl -s http://127.0.0.1:30120/dynamic.json
/players.json 列出已连接的玩家及其标识,/info.json 列出服务器配置和已加载的资源,/dynamic.json 列出当前的占用情况。正是这三个端点构成了已被记录在案的、针对 FiveM 和 RedM 服务器的第 7 层攻击路径:它们无需登录即可访问,可以被任意多次查询,每一次查询都要让您的服务器干活,而其内容还会告诉攻击者什么时候发动攻击最划算。有两个对策不花钱。第一,玩家的地址不该出现在回应里,为此 server.cfg 里一行就够了:
sv_endpointPrivacy true
这个设置会在服务器的公开输出里隐藏您玩家的 IP 地址。第二:如果您的 Discord 机器人或项目网站要显示在线人数,请不要让访客直接去查这个端点,而是按固定间隔把结果缓存下来。这样一来,一个访问量很大的状态页面每个间隔只产生一次查询,而不是每位访客一次。在 RedM 这样小的圈子里,这一点分量加倍,因为同一个服务器状态机器人可能同时接在多个 Discord 服务器里。
4. 把 40120 端口上的 txAdmin 从公网上撤下来
txAdmin 是 FXServer 构建里为 FiveM 和 RedM 自带的管理界面,默认监听 40120 TCP。它后面是对您服务器的全部权限:重启、封禁名单、玩家数据库、资源管理。如果没有固定 IP 地址可以放行,就让这个端口对外保持关闭,通过 SSH 本地端口转发访问它,之后在浏览器里打开 http://127.0.0.1:40120:
ssh -N -L 40120:127.0.0.1:40120 root@YOUR.SERVER.IP.ADDRESS
把 txAdmin 放在公网上的人,会一次拿到两个问题:一个可以被登录洪水攻击冲刷的登录页面,以及一个每收到请求就要干活、却跟游戏毫无关系的服务。有疑虑时,干脆把 txAdmin 只绑定在本地,也就是让这个服务只在 127.0.0.1 上监听。
5. 按源地址限制连接数和数据包速率
对付小型攻击和不讲究的机器人,按源地址设上限就有效。下面两条规则针对 30120,也就是游戏用到的两个协议:
iptables -I INPUT -p tcp --dport 30120 --syn -m connlimit --connlimit-above 8 --connlimit-mask 32 -j DROP
iptables -I INPUT -p udp --dport 30120 -m hashlimit --hashlimit-name redm_udp --hashlimit-mode srcip --hashlimit-above 500/sec --hashlimit-burst 750 -j DROP
第一条规则在同一个地址同时开着超过八条连接时丢弃新的 TCP 连接,第二条在同一来源持续每秒超过 500 个数据包时丢弃 UDP 包。这里的起始值比 FiveM 服务器稍低,因为一台 32 个槽位的 RedM 服务器每个地址产生的正常连接本来就更少。但起始值不是真理:一个满员的角色扮演之夜产生的数据包,比一台空服务器多得多,设得太严会把自己的玩家踢出去。请先在正常运行状态下测一周。
还有两点提示。纯 iptables 规则在重启后就没了,在 Debian 和 Ubuntu 下这样保存:
apt-get install -y iptables-persistent
netfilter-persistent save
在 UFW 下,这类规则应写进 /etc/ufw/before.rules,否则下一次 ufw reload 时就会消失。另一个常被忽视的瓶颈是内核的连接跟踪:它一满,服务器连正常的数据包也会丢弃,日志里会出现“nf_conntrack: table full”。当前数量和上限用这条命令查看:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
6. 保护那 32 个槽位,别被连接洪水攻击占满
一台 RedM 服务器不启用 OneSync 时正好有 32 个槽位。启用 OneSync 后是 48,再往上需要 Element Club 订阅,最多 1024 个位置。这个数字和安全有关,因为它就是攻击者需要填满的上限:谁能同时挂住 32 个连接尝试,就能把一台默认配置的服务器整个占满,而实际上一个玩家都没真正进到游戏里。在一个有 128 个位置的 FiveM 项目里,同样的门槛要高出四倍。
有一个 RedM 特有的优势部分抵消了这一点:RedM 要求一份真正的 Red Dead Redemption 2,无论是在 Steam、Epic Games 还是 Rockstar 买的,还需要 Rockstar 启动器。所以像免费游戏那样用成千上万个一次性账号发起连接洪水攻击,在这里是要真花钱的。攻击因此转向网络层,以及不需要游戏副本的 HTTP 端点。
不过针对所有走正规加入途径进来的东西,白名单仍然有效。它在服务器端通过 playerConnecting 事件实现:您在那里用 Deferrals 函数把连接挂住,检查标识,通过之后才放行。此外还要配上严格的账号校验和一个现实的玩家上限:
sv_authMaxVariance 1
sv_authMinTrust 5
sv_maxclients 32
sv_authMaxVariance 取值 1 到 5,表示允许一名玩家在某个平台上的标识变化到什么程度;1 是最严的设置。sv_authMinTrust 同样是 1 到 5,描述一个伪造身份必须有多不可能;这里 5 是最严的值。RCON 密码只在您真的需要 RCON 时才设,因为这个入口就在同一个开放的 30120 端口上。还有一点必须清楚:白名单保护的是您的游戏逻辑,不是您的线路。灌包的攻击者根本不想加入。他的数据包会被拒绝,但它们已经到了,而这才是关键。
7. 正确看待 RedM 服务器列表里的条目
这里值得实话实说,而不是自我安慰:您的 IP 地址保不了密。RedM 用的是和 FiveM 相同的 Cfx.re 主服务器体系,而列表条目在 connectEndPoints 字段里以明文写着连接端点。通过 servers-frontend.fivem.net 上的公开接口,可以由任意一个 cfx.re 代码查到对应的地址,RedM 和 FiveM 都一样。如果项目完全靠 Discord 和直连运作、根本不需要这个公开条目,可以用 sv_master1 "" 把服务器设为私有:这样就没法再通过服务器列表加入它。不过代价是新玩家完全看不到您,而在一个只有 2000 台服务器的圈子里,可见度才是真正的增长引擎。
更有效的是两个习惯。不要自己在任何地方公布裸的 IP 地址,Discord 频道里不要,项目网站上也不要。另外让您的玩家通过主机名连接,这样真出事时您可以换地址,而不会让所有的指向都断掉。这里最经典的坑是旧的 DNS 记录:一条指向旧地址、被遗忘的 A 记录会让任何更换都失去意义。
8. 在服务器端校验 VORP、RSGCore 和 RedEM 的事件
很多被当成 DDoS 攻击上报的宕机,其实出自一个脚本。RedM 的资源之间通过网络事件通信,而一个服务器不加检查就执行的事件就是一扇敞开的门:谁在客户端用任意数值发出一个 TriggerServerEvent,就能凭空造出美元、刷出马匹,或者在循环里不停触发数据库查询,直到服务器停住。这一点对三个常见框架一视同仁:自 2020 年起脚本生态最大的 VORP Core、RSGCore,以及更早的 RedEM:RP。
特别容易出问题的是背包和角色相关的资源,因为它们每次被调用都要往数据库里写。一个每秒保存十次背包状态的事件循环,给 RedM 服务器带来的负担比某些数据包洪水更重,而且它来自内部,那里没有防火墙管得着。
三条规则能挡住其中的大部分。用 RegisterNetEvent 只注册那些真的应该由客户端触发的事件。绝不要相信客户端一起发来的数值,而要在服务器端从 source 得出是哪名玩家。还要限制同一名玩家触发同一个事件的频率,尤其是所有带数据库查询的事件。如果线路很平静而服务器却在卡顿,客户端控制台里的 resmon 1 会显示每个资源占用的计算时间,罪魁祸首通常就排在最上面。
9. 在需要之前先收集测量数据
最重要的一步是几乎没人事先做的那一步:在一切正常的时候先建立基线。没有正常值,事后您就说不清每秒 4 万个数据包是很多,还是就是个人气不错的周二晚上。用 apt-get install -y vnstat sysstat 让测量常驻运行。事件发生时四条命令就够了:每秒的数据包速率、接口的丢包比例、内核消息,以及流量的一小段抽样。
sar -n DEV 1 10
ip -s link show eth0
dmesg -T | tail -50
tcpdump -ni eth0 port 30120 -c 200 -q
用 tcpdump 时有一条铁律:一定要用 -c 限制数量,满载状态下抓包会让本来已经过载的服务器更吃力。此外请注意负载落在 30120 的 UDP 那一半还是 TCP 那一半上。UDP 负载指向针对游戏流量的数据包洪水,TCP 负载指向针对 HTTP 端点的洪水,两者需要的对策不同。如何解读这些数值,见 识别 DDoS 攻击。
这些措施到哪里为止
现在说没有任何 server.cfg 能解决的那一部分。前面所有措施都跑在您的服务器上,也就是线路的末端。防火墙规则处理的是已经跑过网线的数据包。您可以把它丢弃,但没法让它没被发出来。
算一下就清楚了。一台典型的游戏服务器挂在 1 Gbit/s 上,也就是每秒 125 兆字节,只要有人发得比这更多,线路就满了。针对角色扮演项目的攻击通常在 5 到 50 Gbit/s 之间,也就是您线路的五倍到五十倍。到那时候,您后面那条 iptables 规则写得好不好已经无关紧要,因为您玩家的数据包在更早的地方就已经过不来了。
第二个量是数据包速率,而它往往比带宽更早出事。在 64 字节的小包情况下,一条 1 Gbit/s 的线路里能装进每秒约 149 万个数据包。普通的服务器内核视 CPU 和网卡而定,处理其中几十万个之后就会开始丢包。所以一次连您线路三分之一都没占满的攻击,照样能让您的 RedM 服务器瘫掉,因为计算时间全耗在丢包上了。运营者的体验是“负载根本不高,可是什么都没了”。正是这种看不到服务器负载的延迟尖峰,才是数据包速率型攻击的典型表现。
说一下真实出现过的量级:在 KernelHost 的服务器上,过滤掉的攻击里有一次打向语音服务器的、超过 473.4 Gbit/s 且每秒超过 4150 万个数据包的攻击,以及一次打向游戏服务器的、超过 112.2 Gbit/s 的 UDP 洪水攻击。对此没有任何本地设置可用。流量型攻击必须在服务器前面的网络里就被终结。
RedM 和 FiveM 有什么不一样
简短的答案:网络技术完全相同,周边环境不同。两者跑在同一个 FXServer 上,都使用 30120 的 TCP 和 UDP,都通过 40120 上的 txAdmin 管理。上面关于端口、速率和端点的内容对两者都适用。不同的是外部条件,而恰恰是它决定了一次攻击多快见效:
| 对比项 | RedM | FiveM |
|---|---|---|
| 基础游戏 | Red Dead Redemption 2 | Grand Theft Auto V |
| server.cfg 中的必需行 | set gamename rdr3 | 没有,不写的话 FXServer 就作为 GTA V 服务器运行 |
| 游戏端口 | 30120 TCP 和 UDP | 30120 TCP 和 UDP |
| 面板 | txAdmin,40120 TCP | txAdmin,40120 TCP |
| 常见框架 | VORP Core、RSGCore、RedEM:RP | ESX、QBCore |
| 不启用 OneSync 时的槽位数 | 32 | 32 |
| 同时出现在视野内的玩家 | 上限 32,在 Cfx.re 那边仍是未解决的问题 | 明显更高 |
| 2026 年 9 月的圈子规模 | 约 2000 台服务器,约 1.24 万名玩家 | 约 3.9 万台服务器,约 32.5 万名玩家 |
| 一次性账号的成本 | Red Dead Redemption 2 的全价 | Grand Theft Auto V 的全价 |
| 游戏版本 | 1311、1355、1436、1491 | 自己的 GTA V 版本 |
这张表里有三点对防守是决定性的。第一,圈子更小使每一台 RedM 服务器作为目标更有价值,因为一次宕机影响的玩家占比更大。第二,32 个槽位的默认上限降低了连接洪水攻击打死服务器所需的门槛。第三,网上为 RedM 准备好的防护配方比 FiveM 少,因此很多项目就跑着一份没改过的默认配置。防守手段是一样的,出发状态更差。
KernelHost 用什么来应对
每台服务器都标配的持续防护
KernelHost 的 DDoS 防护分两级,持续生效,您不需要开启、订购或配置任何东西:
- 第 1 级:全球清洗网络中 17 Tbps 的清洗能力。流量型攻击在靠近来源的地方就被清洗掉,不会到达数据中心。
- 第 2 级:法兰克福的 Arbor 实时过滤,容量 3.2 Tbps。就在服务器前面,逐个数据包地识别并丢弃与协议相关的攻击特征。
有两点是关键。防护持续运行,不需要先对攻击做出反应,所以开头不会有 RedM 服务器失联的那几分钟。而且不使用黑洞路由:您的 IP 地址留在网络里,被丢弃的只有恶意数据包。把 IP 地址从网络里撤下来的做法,对您而言和攻击者达到的结果一样。过滤的地点是法兰克福。哪些游戏和协议在覆盖范围内,见 实时游戏服务器 DDoS 防护。
针对长期被攻击项目的 Advanced DDoS Protection
有些项目不是偶尔被打,而是被有针对性地连打几周。为此有 Advanced DDoS Protection,每月 50.00 欧元起,PrePaid 预付费,没有最低合约期。区别不在于容量更大,而在于控制权:
- 专用防护 IP,来自法兰克福的核心网络,您的服务器会在我们自己的网络内切换到它。您这边不需要做任何改造。
- 按端口和协议自行管理的防护规则,就在客户中心里:您可以分别设置 30120 UDP 上允许什么、30120 TCP 上允许什么,而且不用为此写工单。在 RedM 上这种区分特别有用,因为游戏流量和 HTTP 端点用的是同一个端口号,而它们的特征完全不同。
- 改动实时生效,因此您可以在攻击进行时随时调整。
- 与应用匹配的防护策略。30120 上的 Cfx.re 服务器有对应的策略,任意 TCP 或 UDP 端口上经过修改的程序和自研程序同样有。
这两项都针对放在 KernelHost 的服务器。如果您的 RedM 项目目前在别处运行、而且经常被打下线,那么建议是迁过来,而不是再买一个附加产品。
两级防护对比
| 对比项 | 标配的 DDoS 持续防护 | Advanced DDoS Protection |
|---|---|---|
| 价格 | 包含在每个服务器套餐中,不额外收费 | 每月 50.00 欧元起,PrePaid 预付费 |
| 过滤能力 | 17 Tbps 全球清洗,加上法兰克福 3.2 Tbps 的 Arbor 实时过滤 | 同样的两级过滤 |
| IP 地址 | 您服务器本身的 IP 地址 | 额外的专用防护 IP |
| 规则集 | 自动防护策略,无需配置 | 在客户中心里按端口和协议设置自己的规则 |
| 变更 | 自动跟进 | 实时生效,攻击进行时也可以 |
| 30120 TCP 与 30120 UDP 的区分 | 按特征自动区分 | 可按协议分别设置 |
| 黑洞路由 | 否 | 否 |
| 合约期 | 与服务器套餐绑定 | PrePaid 预付费,没有最低合约期,没有退订通知期,也没有开通费 |
对大多数 RedM 项目来说,标配的持续防护配上干净的服务器配置就够了。Advanced DDoS Protection 针对的是有人把这件事当成私人恩怨的情况。
常见错误及解决办法
“我的服务器没有出现在 RedM 服务器列表里,我猜是被攻击了”:请先检查配置。少了 set gamename rdr3,FXServer 就会以 GTA V 服务器的身份注册,不会出现在 RedM 列表里。portal.cfx.re 上的授权密钥缺失或不正确时,条目同样建立不起来。攻击看起来不是这样:条目还在,是连接建立不了。
“几百名玩家在加入时收到错误,看着像一次洪水攻击”:多数情况是游戏版本的问题。sv_enforceGameBuild 和您的资源所期待的不一致时,客户端会报告“server specified an invalid game enforcement”。请设成您的框架要求的值,通常是 1436 或 1491,然后把服务器完整重启一次。
“我换了 IP 地址,两个小时后又掉线了”:攻击者拿到新地址的渠道和拿到旧地址的一样,多半是列表条目、一个 Discord 机器人,或者一条旧的 DNS 记录。换地址是拖延时间,不是解决办法。
“我的 iptables 规则不起作用”:常见原因有三个。规则排在 UFW 的链后面,永远轮不到它;规则在上次重启后就没了(这时用 netfilter-persistent save,或者写进 /etc/ufw/before.rules);或者攻击是流量型的,而规则在一条已经满了的线路上正常工作。请用 iptables -L INPUT -n -v 检查命中计数器是否在增长。如果一直是零,说明规则没有被匹配到。
“服务器在跑,但所有玩家都有橡皮筋效应”:这更常是脚本问题,而不是攻击。请先用 resmon 1 看看是不是某个资源在吃掉计算时间,并检查您框架里的背包和角色资源。如果 sar -n DEV 1 10 没有异常,那就不是 DDoS 攻击。
“txAdmin 显示了几百次失败的连接尝试”:那是一次连接洪水攻击,打的是游戏逻辑,不是线路。针对它起作用的是白名单、通过 sv_authMinTrust 做的账号校验,以及按源地址的连接数上限。
“我原来的主机商把我的 IP 地址封了”:那就是黑洞路由。主机商用它保护自己的网络,对您来说结果和一次成功的攻击完全一样,而且通常在攻击结束后还要持续几个小时。有疑问时请直接问清楚:是过滤还是黑洞路由。这个答案对您可用性的影响,比任何硬件参数都大。
“我在 tcpdump 里看不到任何异常”:如果流量已经在前面的网络里被过滤掉了,服务器上当然就什么都收不到。这在过滤正常工作时是常态。反过来说:线路一旦被打满,您甚至可能连用来测量的那条 SSH 会话都进不来。这时请使用客户中心里的 VNC 控制台,它独立于虚拟机自身的网络运行。
要点总结
- 一台 RedM 服务器正好需要两个开放端口:30120 TCP 和 30120 UDP,通过
endpoint_add_tcp和endpoint_add_udp设置。它没有自己的查询端口,也没有自己的 RCON 端口。 - 40120 TCP 上的 txAdmin 和 3306 TCP 上的数据库都不属于公网,前者应限制到您自己的地址,后者应绑定到 127.0.0.1。
sv_endpointPrivacy true会把玩家的 IP 地址从公开输出里拿掉,而把服务器状态缓存起来能给/players.json减压,那是已被记录在案的、针对 Cfx.re 服务器的第 7 层攻击路径。- 一台 RedM 服务器不启用 OneSync 时有 32 个槽位,启用 OneSync 后 48 个,配合 Element Club 最多 1024 个。槽位越少,一次连接洪水攻击就越便宜,白名单和账号校验也就越重要。
- RedM 和 FiveM 跑在同一个 FXServer 上,唯一的区别是
set gamename rdr3。所以网络层的防守完全相同,周边环境不同:约 2000 台 RedM 服务器对约 3.9 万台 FiveM 服务器,这让每一个 RedM 项目都成为更值得打的目标。 - 本地防火墙规则到线路被打满的地方为止:1 Gbit/s 等于每秒 125 兆字节,在 64 字节包大小时约能装进每秒 149 万个数据包。超过这个量的一切,都必须在服务器前面的网络里就被终结。
- 在 KernelHost,两级持续防护包含在每个服务器套餐中,自服务器开通起即生效,并且不使用黑洞路由。想自己掌控过滤的人,可以用每月 50.00 欧元起的 Advanced DDoS Protection 获得一个专用防护 IP 和按端口、按协议自定义的规则。
如果您的 RedM 项目已经放在 KernelHost,过滤就已经在工作,您什么都不用做。若仍然发现异常,请开一个 支持工单,以便为您的 IP 地址调整过滤规则。攻击正在进行时,您还可以通过 WhatsApp 紧急聊天联系我们:+43 650 8209883。
常见问题
我的 RedM 服务器刚刚离线了。怎么判断是不是 DDoS 攻击?
运行一台 RedM 服务器需要让哪些端口保持开放?
RedM 的 DDoS 防护和 FiveM 的一样吗?
RedM 的圈子这么小,为什么它的服务器还会被攻击?
RedM 服务器上的 /players.json 和 /info.json 有多危险?
为什么 RedM 服务器的 32 个槽位是个安全问题?
现在赶紧换掉 RedM 服务器的 IP 地址有用吗?
我能用 iptables 或 UFW 抵挡针对 30120 端口的攻击吗?
攻击到多大规模,我的 RedM 服务器就撑不住了?
在 KernelHost,我的 RedM 服务器会在攻击期间离线吗?
我的 RedM 项目什么时候需要额外的 Advanced DDoS Protection?
2026 KernelHost GmbH。保留所有权利。本教程受著作权法保护,未经我们书面同意,不得在其他网站上转载,节选转载或改写后转载同样不被允许。欢迎在注明出处并附上链接的前提下引用。

