直接让内核不处理源路由包是最省资源、最彻底的防护方式,发生在网络栈最前端,不进iptables、不触发日志、不占连接跟踪表;必须显式设net.ipv4.conf.all.accept_source_route=0和net.ipv4.conf.default.accept_source_route=0,并配合rp_filter=1、accept_redirects=0、send_redirects=0、ip_forward=0等参数构建纵深防护。

为什么必须显式关闭 accept_source_route
源路由选项允许发送方在IP头里指定转发路径,攻击者可用它绕过防火墙、伪装私有地址发起反射探测,甚至构造跳转链路。虽然多数发行版默认为0,但容器环境、云镜像或系统更新后可能被重置为1。依赖默认值等于留后门。
两步完成配置:临时验证 + 永久固化
只设 all 不够,新创建的接口(如Docker网桥、K8s CNI接口)会沿用 default 值;必须同时覆盖这两层:
- 临时生效(立即起效,重启丢失):
sudo sysctl -w net.ipv4.conf.all.accept_source_route=0sudo sysctl -w net.ipv4.conf.default.accept_source_route=0 - 永久生效(推荐写入独立文件,避免污染主配置):
echo "net.ipv4.conf.all.accept_source_route = 0" | sudo tee /etc/sysctl.d/99-secure.confecho "net.ipv4.conf.default.accept_source_route = 0" | sudo tee -a /etc/sysctl.d/99-secure.conf
加载:sudo sysctl -p /etc/sysctl.d/99-secure.conf
配套参数不能少,否则单点防护易被绕过
源路由只是IP欺骗入口之一,还需同步加固路径校验和控制面:
- 开启反向路径过滤(防伪造源IP):
net.ipv4.conf.all.rp_filter = 1(多数场景适用)或= 2(多宿主/云环境更稳妥) - 禁用ICMP重定向(防路由表篡改):
net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0 - 关闭IP转发(除非你真是路由器):
net.ipv4.ip_forward = 0
验证是否真正生效
执行以下命令,输出值都应为 0:
sysctl net.ipv4.conf.all.accept_source_routesysctl net.ipv4.conf.default.accept_source_route
也可直接读取:cat /proc/sys/net/ipv4/conf/all/accept_source_routecat /proc/sys/net/ipv4/conf/default/accept_source_route
若返回1,请检查文件权限、语法错误,或确认未被其他sysctl配置覆盖。



















