我知道它看起来与许多有关 OpenVPN 和路由表的问题相似,但是,我相信它与其他问题不同 - 或者至少我还没有找到重复的问题。
就我而言,连接到 OpenVPN 服务器后,我注意到默认网关更改为 255.255.255.0(没错,是网关,而不是掩码。)下面是我的路由表。
在连接到 OpenVPN 服务器之前:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.15.254 0.0.0.0 UG 20600 0 0 wlp0s20f3
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.16.8.0 0.0.0.0 255.255.248.0 U 600 0 0 wlp0s20f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-8c249cf54f1c
连接到 OpenVPN 服务器后:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 255.255.255.0 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 172.16.15.254 0.0.0.0 UG 600 0 0 wlp0s20f3
10.8.0.0 255.255.255.0 255.255.255.0 UG 0 0 0 tun0
128.0.0.0 255.255.255.0 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp0s20f3
172.16.8.0 0.0.0.0 255.255.248.0 U 600 0 0 wlp0s20f3
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-8c249cf54f1c
192.168.100.0 255.255.255.0 255.255.255.0 UG 0 0 0 tun0
_VPN_server_IP_ 172.16.15.254 255.255.255.255 UGH 0 0 0 wlp0s20f3
255.255.255.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
它按预期工作:OpenVPN 通过服务器路由我的所有互联网流量,以及到远程 LAN (192.168.100.0/24) 的所有流量。当我看到网关是 255.255.255.0 时,我感到很困惑。如果网络掩码是 255.255.255.0,我会理解它,但它的网关设置为 255.255.255.0。这怎么理解呢?
如果我删除第一个条目ip route del 0.0.0.0/1 via 255.255.255.0 dev tun0
,互联网肯定会停止通过 VPN 路由。我尝试通过添加回来来玩它
ip route add 0.0.0.0/1 via _VPNserver_IP_ dev tun0
或使用 VPN 子网中的服务器 IP (10.8.0.0/24),
ip route add 0.0.0.0/1 via 10.8.0.1 dev tun0
两者都不起作用。所以我怀疑这是 OpenVPN 用于将其定向到服务器的某种技巧。任何意见将不胜感激。
答案1
正如@AB推测的,这确实是由于配置错误造成的:我忘记将拓扑指定为子网,因此默认为net30。结果,在日志中显示了以下警告:
"Fri Apr 29 22:38:56 2022 WARNING: Since you are using --dev
tun with a point-to-point topology, the second argument to
--ifconfig must be an IP address. You are using something
(255.255.255.0) that looks more like a netmask. (silence this
warning with --ifconfig-nowarn)".
将其更改为子网后,问题得到解决。这是我的路由表中涉及的条目tun0
的样子:
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.0.0 10.8.0.1 255.255.0.0 UG 0 0 0 tun0