最有效方式是设net.ipv4.conf.all.accept_source_route=0且同步配置default为0,使内核在网络栈入口直接丢弃含源路由选项的IPv4报文;需配合rp_filter=1、accept_redirects=0、ip_forward=0等构建纵深防护。

直接将 net.ipv4.conf.all.accept_source_route = 0 是最有效的方式——内核在网络栈入口就丢弃所有含源路由选项的 IPv4 报文,不进 iptables、不触发日志、不消耗连接跟踪资源。这不是过滤,是彻底不处理。
必须同时配置 all 和 default
只设 all 不够:新创建的接口(如 Docker 网桥、Kubernetes CNI 接口)会继承 default 的值。若 default 仍为 1,这些接口就存在风险。
- 临时生效(立即执行,重启丢失):
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加载
验证是否真正关闭
不能只看配置文件,要确认内核当前值:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
- 运行:
sysctl net.ipv4.conf.all.accept_source_route net.ipv4.conf.default.accept_source_route,输出应均为= 0 - 或直接读取:
cat /proc/sys/net/ipv4/conf/all/accept_source_route和cat /proc/sys/net/ipv4/conf/default/accept_source_route,返回值都应是0
配套加固不可省略
单关源路由只是第一道防线,还需组合以下参数构建纵深防护:
- 启用反向路径过滤:
net.ipv4.conf.all.rp_filter = 1(单出口服务器)或= 2(多网卡/云环境) - 禁用 ICMP 重定向:
net.ipv4.conf.all.accept_redirects = 0和net.ipv4.conf.all.send_redirects = 0 - 关闭 IP 转发(除非是路由器):
net.ipv4.ip_forward = 0 - (可选)刷新路由缓存确保策略即时生效:
sudo sysctl -w net.ipv4.route.flush=1
常见误区提醒
不要依赖“默认已是 0”——容器启动、内核更新、配置覆盖都可能导致该值回退为 1;也不要只配 all 忽略 default;更不要试图用 iptables 匹配源路由选项,它根本到不了 netfilter 层。










