首页/网络/协议速查/ICMP 重定向(类型 5)

ICMP 重定向(类型 5)

当网关发现主机使用了「非最优」下一跳时,发 ICMP 重定向让主机改走更好的网关;默认多数系统会接受并更新路由缓存。

协议速查网络更新于 2026-10-13

ICMP 重定向是什么

当网关发现某台主机把报文发给了「不是最优」的下一跳时,会回一条 ICMP 重定向(类型 5),告诉主机改走更合适的网关。主机收到后通常会把这条更好的路径记进路由缓存,后续流量自动改道。这在网络设计里属于优化手段,但同一条报文也能被伪造:攻击者可以冒充网关,把主机流量引到自己这里,因此服务器与路由器上一般建议关闭接受重定向。

基本信息

类型号ICMP 类型 5
携带内容应改用的网关地址与触发该报文的原始信息
主机行为更新路由缓存并改走新网关
安全风险可被伪造,用于中间人劫持
建议设置服务器关闭接受,网关角色按需保留
相关参数接受重定向与发送重定向两个开关

查看与加固

查看与加固
sysctl net.ipv4.conf.all.accept_redirects     # 服务器建议为 0
sysctl net.ipv4.conf.all.send_redirects       # 非网关角色建议为 0
tcpdump -nn 'icmp[0] == 5' -c 5               # 观察是否频繁收到重定向
sysctl -w net.ipv4.conf.all.accept_redirects=0 && sysctl -w net.ipv4.conf.all.send_redirects=0

接收与发送开关

开关作用建议
接受重定向是否采纳他人给出的更优路径服务器与终端建议关闭
发送重定向是否向同网段主机纠正路径只有承担网关角色的设备才需要
按接口配置可针对特定接口单独设置多网卡主机需逐接口确认

典型使用场景

  • 主机加固基线:关闭接受重定向,防止路由表被外部报文改写
  • 内网异常排查:大量重定向往往说明存在双网关或路由设计问题
  • 安全事件分析:确认是否有人尝试用伪造报文引导流量
  • 多网卡服务器配置:逐接口核对相关开关是否都被设置
  • 网络改造验证:调整网关后确认主机路径收敛正常
这条报文既是网络优化手段也是攻击面:在受控实验里,伪造一条重定向就能改变主机的转发路径。因此服务器与终端应当关闭接受重定向,同时关闭发送重定向——除非这台设备本身就是网关,且清楚其副作用。内网频繁出现重定向,通常意味着网络设计存在旁路或环路问题。

易错点

  • 只改 all 接口的开关而忽略具体接口,多网卡主机的设置仍可能生效
  • 在承担网关角色的设备上直接关闭发送重定向,影响同网段主机的路径优化
  • 把大量重定向当成正常现象,忽略背后可能是网络设计与路由环路问题
  • 以为关闭之后攻击就无法进行:伪造报文仍可发出,只是主机不再采纳
  • 修改内核参数后未持久化,重启后回到默认值

数据来源与参考

  • RFC 792
  • RFC 1122 §3.2.2.2

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌