OpenVPN 可以与 NetworkManager 配合使用,但是不能从终端使用?

OpenVPN 可以与 NetworkManager 配合使用,但是不能从终端使用?

我调查了好久,还是没能搞清楚。请对我宽容一点。

每次我从终端 (通过sudo openvpn --config x.ovpn) 运行 OpenVPN 时,一切似乎都很好(除了有关凭据缓存的警告)。但是当我 时traceroute google.com,它不会通过 VPN 进行路由。

当我通过连接时这不是问题nm-applet,NetworkManager 的配置是从 OpenVPN 的配置文件自动生成的。

我检查了ip route每一种方法,只有当我使用 GUI 时,它才会添加另一条默认路由:

default via <address> dev <device> proto static metric 50

我尝试了以下方法,但无济于事:

  • 通过以下方式启用转发/proc/sys/net/ipv4/ip_forward
  • 通过以下方式添加新的默认路由:ip route add default via <gateway> dev <device>

我相当确定 NetworkManager 没有直接调用该openvpn命令(查看了源代码),尽管它确实添加了一条新的默认路由openvpn

我走在正确的道路上吗?如果没有,有人可以给我指明正确的方向吗?


编辑:

我设法将所有流量路由到<device>,但非常混乱。有人知道使用 OpenVPN 时 NetworkManager 发出的修改路由表的命令吗?

答案1

我找到了解决该问题的一个干净方法:使用vpnfailsafe

我从我的存储库安装了它,并将以下内容添加到我的配置文件中:

up <path-to-vpnfailsafe.sh>
down <path-to-vpnfailsafe.sh>
script-security 2

相关内容