You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04 Network Manager连接OpenVPN时所有流量走VPN(命令行连接正常)

Ubuntu 22.04 Network Manager连接OpenVPN时所有流量走VPN(命令行连接正常)

看起来你遇到的是Network Manager导入OpenVPN配置时的路由规则自动覆盖问题,毕竟命令行用openvpn命令连接是正常的,说明服务器端配置没问题,问题出在NM的客户端配置上。我来帮你一步步排查解决:

1. 检查Network Manager的VPN路由核心设置

这是最常见的触发原因,NM默认可能会强制把所有流量导向VPN,哪怕服务器没推送redirect-gateway:

  • 点击Ubuntu右上角的网络图标,找到你的OpenVPN连接,选择「编辑连接」
  • 在弹出窗口切换到IPv4设置标签页
  • 找到「路由」区域,勾选仅将此连接用于其网络上的资源(这个选项就是告诉NM:只有VPN对应的内部网络流量走这条连接,其他流量继续用原来的默认网关)
  • 同时检查下方的路由列表,应该只有服务器推送的192.168.0.0/24这条路由,如果有0.0.0.0/0的默认路由,手动删除它

2. 检查高级选项里的「重定向网关」开关

有时候NM导入.ovpn文件时会误开启这个选项,和服务器端的配置冲突:

  • 在刚才的编辑窗口里,点击右下角的高级按钮
  • 切换到路由标签页,确保「重定向网关」的选项没有被勾选(服务器端已经注释了redirect-gateway,这里也应该保持关闭)

3. 排查virbr0虚拟网卡的干扰

你提到NM连接时多了个virbr0设备,这是libvirt(比如KVM/QEMU虚拟化服务)默认创建的虚拟网桥,它自带的路由规则可能会和VPN路由冲突:

  • 先临时禁用libvirt服务测试:sudo systemctl stop libvirtd
  • 然后重新连接VPN,看看是不是所有流量不再走VPN了
  • 如果有效,你可以选择:
    • 永久禁用libvirt服务(如果不需要虚拟化):sudo systemctl disable --now libvirtd
    • 或者修改libvirt的网络配置,让它的路由规则不会干扰VPN的正常路由

4. 手动对比路由表(临时调试用)

如果上面的设置都没生效,你可以对比两种连接方式的路由表,定位差异点:

  • 命令行连接后,执行ip route show,记录下默认路由(比如default via 192.168.18.1 dev enxzzzz)和VPN专属路由(192.168.0.0/24 via 10.8.0.1 dev tun0)
  • NM连接后,同样执行ip route show,如果发现默认路由变成了default via 10.8.0.1 dev tun0,手动删除这条错误的默认路由:sudo ip route del default via 10.8.0.1
  • 这个操作是临时的,重启连接会失效,但可以帮你确认是不是路由规则被错误覆盖导致的问题

按照上面的步骤一步步来,应该就能解决NM强制把所有流量走VPN的问题了。

备注:内容来源于stack exchange,提问作者Gonzalo Cao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:28:03