我调查了好久,还是没能搞清楚。请对我宽容一点。
每次我从终端 (通过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