通过 NetworkManager 打开 OpenConnect VPN:无效的默认路由,仍然使用本地网关?

通过 NetworkManager 打开 OpenConnect VPN:无效的默认路由,仍然使用本地网关?

我正在使用 network-manager-openvpn 连接到我的大学 VPN。当我openconnect -u username vpn.host.edu从命令行运行时,VPN 可以正常工作(尽管它会发出很多ip route错误消息)。

但是,通过 NetworkManager GUI 启动 VPN 时,生成的路由表很混乱:

$ 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 条目不是第​​一个默认路由?

PS 我知道有解决方法网络管理器未为 OpenVPN 连接设置 IP4.GATEWAY网络管理器未为 OpenVPN 连接设置 IP4.GATEWAY- 但我想修复这个问题,而不必每次都运行 shell 命令。

答案1

是的,像往常一样,我在发布问题 5 分钟后找到了(或多或少)解决方案 :-/

看起来这个错误与以下错误有关: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

我仍然希望看到这个问题能够在不使用黑客脚本的情况下得到修复,但显然这是一个已知的错误。

相关内容