Ubuntu OpenVPN 网络管理器在不应该的情况下将所有流量通过 VPN 路由

Ubuntu OpenVPN 网络管理器在不应该的情况下将所有流量通过 VPN 路由

我有一个正在运行的 openVPN 服务器。此服务器配置为仅在需要时将流量路由到内部网络。在 server.conf 中:

...
push "route 192.168.0.0 255.255.255.0"
;push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 192.168.0.xxx"
;duplicate-cn
...

所有与官方 openvpn 连接客户端配合使用的设备(win、mac、ios 和 android)均按预期工作:它们连接到内部网络,但其余导航直接进入互联网。 但是,当我在 ubuntu 22.04 中使用网络管理器导入 ovpn 配置文件时,客户端可以正确连接,dns 可以正常工作……但所有流量都通过 vpn 路由。

如果我使用 openvpn 命令,我可以按预期连接到 ovpn(正确路由流量),但运行 sudo 命令(“sudo openvpn --script-security 2 --config /etc/openvpn/client/profile.ovpn”)并做一些奇怪的事情并不舒服。

这是我的 ovpn 客户端配置文件的重要部分:

client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-GCM
auth SHA512
verb 3
tls-client
tls-version-min 1.2
key-direction 1
remote-cert-tls server
remote mydomain.com 1194
<ca>

编辑:我发现了不同之处。Ubuntu 网络管理器正在生成第三个设备。

因此,使用“openvpn --script-security 2 --config /etc/openvpn/client.ovpn”脚本我得到了这两个设备:tun0:10.8.0.14 enxzzzz:192.168.18.6

使用 ubuntu 网络管理器,它们是相同的,但有第三个设备!virbr0:192.168.122.1

答案1

OpenVPN 服务器的“推送”设置可以被客户端覆盖。切勿期望客户端会使用它们。

似乎网络管理器默认不设置“仅将此连接用于此网络上的资源”。这将禁用或启用通过 VPN 连接的默认路由。

openvpn 命令尊重来自服务器的“推送”并按预期工作。

改变这一点的命令行:

nmicli connection modify "YourVPNConnection" ipv4.never-default yes

如果需要的话,请使用 ipv6。

或者在 Gui 中:
Gnome 网络管理器 IPv4

相关内容