推荐实现顺序
-
WAN IP/PDP 变化 → 删除 192.168.16.0/24 的 conntrack(必做)
-
有条件就 RST 或缩短 TCP ct timeout
-
上报"承载/IP 变化"给 HU
-
用 LAN+WAN 抓包回归:切 4/5G 或强制换 PDP 后,旧 853 应断开,新 853 三次握手完整
一句话给 TBOX
WAN IP 变了以后,必须失效对 HU 的旧 SNAT/conntrack;只做路由转发,旧 TCP 不会自己跟到新 IP 上。
如果切换时 WAN IP 始终不变:
• 「旧 conntrack 还记着旧公网 IP,回程对不上」这条 就不成立
• 旧 SNAT 五元组里的 WAN 地址还是对的,ACK 按理能回来
那 Send-Q 堆积更可能是:
-
空口质量差:切 RAT 时丢包、时延大,TCP 窗口堆住(信号确实 5→2)
-
运营商 CGNAT / 中间盒 把长连接 squelch 了,和 TBOX 本机 IP 无关
-
TBOX 转发/会话状态 在切 RAT 时出错(conntrack 方向、mark、出口网卡),即使 IP 没变
-
同一 IP、出口网卡变了(例如从 rmnet_data0 换到另一张),MASQUERADE 出接口变了,旧 ct 仍绑旧口,IP 看起来没变也会坏
第 4 点值得单独说:
地址不变、出接口变了,对 Linux NAT 来说和换 IP 很像,旧 ESTABLISHED 照样可能转不出去。这也要 TBOX 自己看 ip addr / 默认路由 / conntrack 的 outgoing interface。
一句话
可以不变。 不要用 WANConnInfo 4↔5 直接推断 WAN IP 变了。要 TBOX 在切换瞬间打:蜂窝地址、默认路由、PDP 是否重建。IP 和出接口都没变,就要从丢包/CGNAT/转发会话上查,而不是清"旧公网 IP"的 conntrack。