我正在使用网络管理器openvpn连接到我的大学VPN。当我只是从命令行运行openconnect -u username vpn.host.edu
时,VPN就可以工作了(尽管它发出了很多ip route
错误消息)。
但是,当通过NetworkManager GUI启动虚拟专用网时,产生的路由表会出现混乱:
$ ip route
default via 192.168.178.1 dev enxXXXXXXXXXXXX
default dev vpn0 proto static scope link metric 50
default via 192.168.178.1 dev enxXXXXXXXXXXXX proto dhcp metric 20100
[...]
第一个入口导致所有通信量仍然通过本地网关路由。因此,例如,VPN DNS服务器的名称解析失败,VPN不可用。当我使用ip route del default via 192.168.178.1 dev enxXXXXXXXXXXXX
删除第一个路由表条目时,一切都开始按预期工作。
VPN连接的所有网络设置都设置为“自动”,那么为什么VPN条目不是第一个默认路由?
我知道在网络管理器没有设置IP4.OpenVPN用于OpenVPN连接和网络管理器没有设置IP4.OpenVPN用于OpenVPN连接中有一些解决方案--但是我希望不用每次运行shell命令就能修复这个问题。
发布于 2020-12-03 09:18:31
是的,和往常一样,我在发布问题5分钟后找到了(或多或少)解决方案:-/
这个bug似乎是相关的:https://gitlab.gnome.org/GNOME/NetworkManager-openconnect/-/issues/33#note_889793
链接的注释建议使用/etc/network/if-up.d/
中的脚本来修复路由,我现在使用的是这个。
#!/bin/sh
# Hacky workaround bug in NM not setting the default routes.
if [ "$IFACE" = "vpn0" ]; then
#ip route replace default via 0.0.0.0 dev vpn0
ip route del default via 192.168.178.1 dev enxXXXXXXXXXXXX
fi
我仍然希望看到这个没有恶意脚本的修复,但显然,它是一个已知的错误。
https://askubuntu.com/questions/1297119
复制相似问题