UDP反射放大攻击的本质,就是攻击者不直接拿流量砸你,而是伪造你的IP地址,让公网上开放UDP服务的服务器把成倍的大响应包反射回你的服务器,用小成本制造大拥塞。
UDP反射放大攻击原理是什么
你可以把这种攻击理解成“借刀杀人”,攻击者不想暴露自己的真实流量,于是找到互联网上大量开放UDP协议的服务端,伪造受害者IP发送很小的请求包,服务端收到请求后,会把远远大于请求体积的响应包发到伪造的源IP上,也就是受害者那里。
整个过程大致分四步:
- 攻击者控制一批被入侵的主机或服务器,向公网扫描开放UDP服务的设备。
- 攻击者构造一个UDP请求包,把源IP字段改成受害者的公网IP,这叫源地址伪造。
- 请求包被发送到大量开放服务的服务器,比如DNS、NTP、Memcached。
- 这些服务器收到请求后,把响应包发向伪造的IP地址,也就是真正的攻击目标。
为什么叫“放大”?因为一个几十字节的请求,可能换来几百字节、几千字节甚至更大的响应,比如一个完整的DNS递归查询,请求可能只有60字节左右,响应却可能达到4000字节以上,攻击者用很小的上行流量,就能让受害者接收到数倍甚至上万倍的拥堵流量。
行业共识认为,Memcached服务的部分配置下,未授权UDP请求可产生数万倍的放大效果,这也是它一度成为严重威胁的原因。
常见UDP反射放大攻击端口有哪些
并不是所有UDP服务都有放大能力,只有那些“响应明显大于请求”的协议,才适合被用作反射放大器,下面这几种是最常见的:
- DNS服务,默认端口53:请求小、响应大,服务器数量多,是攻击者最常用的放大器之一。
- NTP服务,默认端口123:老版本NTP的monlist命令会返回最近600个客户端记录,放大效果明显。
- SSDP服务,默认端口1900:大量家用路由器和物联网设备默认开放,容易被利用。
- Memcached,默认端口11211:如果未做访问控制和绑定内网,UDP请求可产生极高放大倍数。
- CLDAP,默认端口389:无连接轻量目录访问协议,响应内容较大,常被用于高倍率反射。
- CHARGEN,默认端口19:旧式字符生成协议,响应内容固定但会持续输出,造成流量放大。

下表把这些常见服务做一个简单对比:
| 服务名称 | 默认UDP端口 | 放大倍数范围 | 主要风险点 |
|---|---|---|---|
| DNS | 53 | 约2~50倍 | 开放递归查询的服务器 |
| NTP | 123 | 约20~500倍 | 旧版本未关闭monlist |
| SSDP | 1900 | 约5~30倍 | 家用路由器和IoT设备 |
| Memcached | 11211 | 数千到数万倍 | 未授权且绑定公网 |
| CLDAP | 389 | 约50~200倍 | 域控制器暴露公网 |
| CHARGEN | 19 | 约5~30倍 | 老旧设备默认开启 |
这里的放大倍数只是行业公开讨论中的常见范围,实际数值会因请求类型、服务配置和网络环境不同而变化。
服务器被UDP反射攻击怎么办
如果你的服务器突然出现入向UDP流量暴增、业务端口无响应、带宽占用接近上限,就要考虑是不是遭到了UDP反射放大攻击,这种攻击的典型特征是:源IP地址分散,但源端口集中,比如大量来自53端口或123端口的回应包。
先别急着重启服务器,优先做以下几件事:
- 联系上游运营商或云服务商:如果你租用的是云服务器,立刻在控制台查看流量监控,并提交工单申请流量清洗或黑洞策略,多数云平台会提供基础DDoS防护,能在入口侧丢弃大部分异常流量。
- 关闭不必要的公网UDP服务:如果你自己管理物理服务器,先检查开放端口,把无需对公网提供的UDP服务全部关闭或绑定到内网。
- 配置防火墙限速:在服务器本地防火墙限制单IP或单端口的UDP包速率。
- 使用专业DDoS防护服务:如果业务重要且攻击频繁,需要接入高防IP或云端清洗设备。
下面给几条可实际操作和验证的命令,不同系统环境会有差异,操作前请确认自己使用的发行版。

检查当前服务器开放的UDP端口:
netstat -ulnp
如果发现Memcached监听在公网地址,需要修改配置让它只监听本地:
# 编辑 /etc/memcached.conf
-l 127.0.0.1
然后重启服务:
systemctl restart memcached
如果发现NTP服务对外开放,并且版本较老,可以在配置文件中关闭monlist查询:
# 编辑 /etc/ntp.conf
disable monitor
保存后重启NTP:
systemctl restart ntp
对DNS服务做本地限速,可以添加一条iptables规则:
iptables -A INPUT -p udp --dport 53 -m limit --limit 100/s --limit-burst 200 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP
这组规则会把入向UDP 53端口的包速率限制在每秒100个左右,超出部分直接丢弃。
如果攻击流量已经把服务器带宽完全打满,本地防火墙基本无效,这时候必须在运营商或云平台侧处理,因为流量还没到达你的服务器就已经把链路占满了。
UDP反射放大攻击和DDoS攻击区别是什么
很多人把UDP反射放大攻击直接等同于DDoS攻击,这种理解不够完整,DDoS是分布式拒绝服务攻击的总称,UDP反射放大攻击只是其中一种具体形式。
- 普通UDP Flood:攻击者控制多台主机,直接向目标服务器发送大量UDP包,源IP可能是真实的僵尸主机,也可能是伪造的。
- UDP反射放大攻击:攻击者不直接向目标发送大量流量,而是伪造目标IP向第三方服务器发送小请求,让第三方服务器的大响应去打目标。
- 攻击源特征不同:普通UDP Flood的源IP可能集中在僵尸网络,而UDP反射放大的源IP通常是正常提供公共服务的服务器。
- 防御位置不同:普通UDP Flood可以在目标侧通过限速和过滤缓解,UDP反射放大攻击需要在运营商侧或云防护侧做流量清洗,因为本地链路容易先被塞满。
简单说,所有UDP反射放大攻击都属于DDoS攻击,但DDoS攻击不止包含这一种,防御时如果混淆两者,容易在错误的位置配置策略,导致服务器已经掉线。
防御UDP反射攻击需要多少成本
这个问题没有统一答案,因为成本取决于你要保护的带宽大小、业务类型和攻击规模,小型网站或应用购买基础云清洗服务,通常每月几百元就能获得一定额度的防护,大型游戏、金融或直播业务,需要按保底带宽和弹性带宽购买高防IP,月成本可能从几千元到数万元不等。
如果你自己搭建防护体系,成本结构会更复杂:
- 硬件防火墙:一次性投入较高,适合有自建机房的企业。
- 带宽冗余:需要长期支付额外带宽费用,单独使用性价比不高。
- 云防护服务:按需购买,弹性扩容,适合多数中小业务。
- 运维人力:持续监控和策略调整也需要时间成本。
多数云服务商提供的基础DDoS防护已经包含一定额度的清洗能力,例如免费抵御几Gbps以内的攻击,超过免费额度后,再按攻击流量或防护峰值收费,对于个人开发者或小型业务,优先选择云服务商自带的防护功能,成本最低也最快生效。
Q&A:关于UDP反射放大攻击的常见问题
UDP反射放大攻击原理是什么?
攻击者伪造受害者IP地址,向开放UDP服务且响应远大于请求的服务器发送小数据包,服务器收到请求后,把较大的响应包发送到受害者IP,导致受害者带宽被第三方服务器的响应流量占满,其核心是源地址伪造加上响应放大,让攻击者用少量资源造成大规模拥堵。
怎么判断服务器是否被UDP反射攻击?
首先查看流量监控,如果入向UDP流量突然大幅增加,而业务本身没有对应的大流量UDP请求,就很有可能是反射攻击,其次用抓包工具查看源端口,如果大量响应来自53、123、1900、11211等端口,基本可以确定攻击类型,最后看服务器是否还能正常响应,如果带宽耗尽导致SSH或网站无法访问,说明链路已经被堵塞。
防御UDP反射攻击需要多少成本?
成本取决于防护规模和业务需求,小型业务购买云清洗服务的起步价通常在每月几百元,大型业务需要定制高防方案,成本会明显上升,多数云服务商的基础DDoS防护已包含一定额度的清洗能力。