核心是rp_filter严格模式导致回程包被静默丢弃,需检查sysctl net.ipv4.conf.all.rp_filter等值是否为1,并用ip rule、ip route get和ip neigh验证策略路由与arp状态。

确认回程路径是否与出程一致
多网卡服务器常见问题是“能发不能收”:比如请求从 eth0 出去,响应却试图从 eth1 回来,被内核丢弃。Linux 默认启用 rp_filter(反向路径过滤),会检查入包的源IP是否能通过同一接口的路由表反向到达——不匹配就静默丢弃。先运行:
sysctl net.ipv4.conf.all.rp_filter 和 sysctl net.ipv4.conf.eth0.rp_filter(替换为实际接口名),若返回 1 表示开启严格模式。
查清实际生效的入向路由表
别只看 ip route show 的主表。多网卡常配策略路由,需同步检查:
• ip rule show:看是否有基于源IP或入接口的规则(如 from 10.0.2.100 lookup table 100)
• 对每个非默认表(如 table 100),执行 ip route show table 100
• 用 ip route get 192.168.1.100 from 10.0.2.50 iif eth1 模拟真实入包路径,验证它是否真走你期望的表和下一跳
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
检查 ARP 学习是否发生在正确网段
回程失败常伴随 ARP 异常。运行 ip neigh show,重点看:
• 网关IP在 eth0 上状态是 REACHABLE,但在 eth1 上却是 FAILED 或缺失
• 同一IP出现在两个接口的ARP缓存中(说明流量错乱)
• 大量 INCOMPLETE 条目:表示该接口发了ARP请求但没收到回复,可能因目标主机绑定在另一网段、VLAN隔离或防火墙拦截ARP
临时绕过并验证问题根源
快速判断是否为 rp_filter 或策略路由导致:
• 临时关闭严格反向过滤:sudo sysctl -w net.ipv4.conf.all.rp_filter=0
• 清空自定义策略规则:sudo ip rule flush(操作前建议备份:ip rule save > /tmp/rule.bak)
• 若此时回程恢复正常,说明问题出在策略路由或 rp_filter 配置;需重建规则时确保 from [本接口IP] 规则优先级高于 from all,且各表路由不冲突










