最近遇到一个比较棘手的问题,客户端电脑使用了F5 VPN 导致网络不稳定,F5没有做流量分割,导致登入VPN后,只能访问VPN资源,无法访问本机内外网资源。
F5在 Linux 上持续、周期性地修改路由表、DNS、并且F5自身在ubunt22.04存在内核模块崩溃的 bug。
这些修改是系统级的、持续性的,虽然我们设置了很多“定时修复脚本”都无法彻底解决,只能事后补救,临时缓解断网的次数。
在F5使用 Full Tunnel + 路由回写 环境下:不存在“优雅绕过”,只有“谁抢得过谁”。
后来想了一个简单的方法,即然F5要占用某一个网卡,那就让它占用,我再接一个外置的USB网卡做为外网临时访问使用,实测效果待观察。
下面说明适用于使用 F5 VPN 的电脑。机器上有两块网卡(如:内置网卡 + USB 网卡/有线或者无线),实现外网与 VPN 的完美共存。
1. 目标
不崩外网: VPN 连接后,依然能正常查资料、微信办公。
内网互通: 别人能通过内网 IP 访问你的机器。
零配置: 不需要去改 Metric,不需要写复杂的静态路由。
2. 网络拓扑
┌──────────────────────────┐
│ F5 VPN 云端 │
└─────────────▲────────────┘
│
隧道流量 (F5 接管其中一个路径)
│
┌─────────┴─────────┐
│ │
内置网卡 (eno1) USB 网卡 (enx…)
(VPN 承载) (外网/内网出口)
│ │
└─────────┬─────────┘
│
┌──────────────┐
│ 交换机/LAN │
└──────────────┘
3. 极简操作步骤(关键顺序)
为了确保方案 100% 成功,请遵循以下“先拨号,后插卡”的原则:
第一步: 仅使用内置网卡连接网络,启动并登录 F5 VPN。
- 逻辑:此时 F5 会锁定内置网卡作为它的“宿主”。
第二步: 待 VPN 显示“已连接”后,插上 USB 网卡。
- 逻辑:后插入的网卡会向系统提供一条全新的、未被 F5 污染的默认路由。
第三步: 完成。此时系统会自动利用 USB 网卡访问外网,利用内置网卡跑 VPN 流量。
4. 为什么这个方案有效?
F5 的“先入为主”: F5 VPN 在启动瞬间会接管当时的默认网关。如果你在连上 VPN 之后再接入第二块网卡,第二块网卡带来的新网关通常具有较高的优先级(或作为冗余存在),从而接管外网流量。
同网段逃逸: 由于两块网卡都在
10.2.160.x,即使 F5 修改了全局默认路由,两块网卡的直连路由(Direct Route)依然有效。这意味着内网其他机器 ping 你时,总有一块网卡能给出响应。无需配置: 你不需要手动调 Metric。如果发现上不了外网,只需将 USB 网卡拔掉重插即可,系统会自动重新刷新路由优先级。
5. 验证方法(30 秒完成)
验证外网:
ping www.baidu.com—— 通了说明 USB 网卡在干活。验证 VPN: 访问公司内部 OA 或开发环境 —— 通了说明内置网卡在跑隧道。
验证内网: 让同事
ping你的 USB 网卡 IP —— 通了说明你在内网“没失踪”。
6. 常见问题 (FAQ)
Q:如果 F5 把两块网卡都搞断网了怎么办?
- A: 这种情况极罕见。只需右键禁用 USB 网卡再重新启用,系统就会强制刷新路由表,外网通常会瞬间恢复。
Q:两个 IP 会冲突吗?
- A: 不会。同一个子网下拥有两个 IP 是标准协议允许的。在内网访问你时,建议把 USB 网卡的 IP 告诉同事,因为它最稳定。
Q:为什么不推荐提前插上两块卡?
- A: 提前插上两块卡,F5 可能会随机选择一块。如果 F5 选了 USB 网卡,而你希望它走内置网卡,顺序就乱了。“先拨号,后插卡”是零基础用户最稳妥的操作。