为什么 OpenVPN 启用我不想要的路由?

为什么 OpenVPN 启用我不想要的路由?

我正在尝试建立与 OpenVPN 服务器的 VPN 连接,但没有任何默认路由,因此我可以自己配置这些路由。基本上,我正在寻找一个基本不变的系统(所有路由与以前一样),但具有接口,tun0以便应用程序可以连接到它。

我开始使用的配置文件如下所示:

client
dev tun
proto udp

remote de-fra.mullvad.net 1194

cipher AES-256-CBC
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
remote-cert-tls server
ping 10
ping-restart 60
sndbuf 524288
rcvbuf 524288

fast-io

auth-user-pass mullvad_userpass.txt
ca mullvad_ca.crt

tun-ipv6
script-security 2

tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA

它是从默认的 Mullvad 配置文件改编而来的,删除了对 的调用update-resolv-conf.sh(原因是大多数 OpenVPN 指南中都没有提到这一点,而且我希望尽可能少地干扰我的系统)。

ec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: /sbin/ip -6 addr add fdda:d0d0:cafe:1194::1000/64 dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: add_route_ipv6(::/2 -> fdda:d0d0:cafe:1194:: metric -1) dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: /sbin/ip -6 route add ::/2 dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: add_route_ipv6(4000::/2 -> fdda:d0d0:cafe:1194:: metric -1) dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: /sbin/ip -6 route add 4000::/2 dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: add_route_ipv6(8000::/2 -> fdda:d0d0:cafe:1194:: metric -1) dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: /sbin/ip -6 route add 8000::/2 dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: add_route_ipv6(c000::/2 -> fdda:d0d0:cafe:1194:: metric -1) dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: /sbin/ip -6 route add c000::/2 dev tun0
Dec 25 11:52:39 Hurler ovpn-mullvad_de-fra[8378]: Initialization Sequence Completed

这些路线从哪里来?

答案1

回答为什么这些路线从哪里来?

查看路线:

0000::/2
4000::/2
8000::/2
c000::/2

这四个 /2 子网代表所有的IPv6 互联网。这是一种(有点不靠谱的)覆盖默认路由(即 ::/0)而不删除它的方法。许多 OpenVPN 配置对 IPv4 执行相同的操作,方法是添加以下路由:

0.0.0.0/1
128.0.0.0/1

如果默认路由度量也是最低可能的:0,那么它仍然优先于 0.0.0.0/0(或 ::/0)。

此链接提供了在客户端防止这种情况的方法:

https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway

答案2

OpenVPN 服务器可以将路由等设置推送给客户端。

理论上你可以过滤你的客户接受哪个拉式过滤器,然而这对于我的情况不起作用。

我需要指令route-nopull

相关内容