我正在使用 OpenVPN 连接到 VPN 服务,一切正常。连接后,这些规则将自动设置:
root@linux:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:AA:1B:01:AC:FB
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46867 errors:0 dropped:0 overruns:0 frame:0
TX packets:29742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37977382 (36.2 MiB) TX bytes:5098121 (4.8 MiB)
Interrupt:16
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.7.7.126 P-t-P:10.7.7.125 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:23284 errors:0 dropped:0 overruns:0 frame:0
TX packets:5817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:31366374 (29.9 MiB) TX bytes:308591 (301.3 KiB)
root@linux:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
5.120.121.114 192.168.1.1 255.255.255.255 UGH 0 0 0 eth0
10.7.7.1 10.7.7.125 255.255.255.255 UGH 0 0 0 tun0
10.7.7.125 * 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.7.7.125 128.0.0.0 UG 0 0 0 tun0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
这是我的理解:
- 我的本地IP地址是192.168.1.201
- 本地网关是191.168.1.1
- 5.120.121.114是VPN公网ip
- tun0 是 VPN 隧道,我的机器的地址是 10.7.7.126
- 10.7.7.125是ptp地址,我理解是VPN的另一“端”
关于路由表我的理解是:
- 默认情况下,所有流量都通过接口 tun0 上的 10.7.7.125 发送(但为什么要使用这个掩码?)
- 10.7.7.1 可通过 tun0 访问
- VPN 的公共 IP 可通过 eth0 访问
我不明白第二个默认网关,这是VPN未激活时的默认网关,是否只是被绕过?
10.7.7.1 怎么样?看起来这是VPN的网关...
为什么目的地是 128.0.0.0?
OpenVPN 自动创建所有这些规则。但它们是基于什么而创建的呢?
我无法控制 VPN 的服务器端,只能控制客户端配置。
现在如果我想:
- 强制所有到 216.58.213.174 的流量都通过 VPN tun0,而其余所有流量都通过 eth0?
- 我可以在启动 VPN 时自动建立它吗?
感谢您的建议和支持,以理解这一点。
KR, dk
编辑:
root@linux:~# ip route list
0.0.0.0/1 via 10.7.7.125 dev tun0
default via 192.168.1.1 dev eth0
5.152.210.249 via 192.168.1.1 dev eth0
10.7.7.1 via 10.7.7.125 dev tun0
10.7.7.125 dev tun0 src 10.7.7.126
128.0.0.0/1 via 10.7.7.125 dev tun0
192.168.1.0/24 dev eth0 src 192.168.1.201
答案1
我不明白第二个默认网关,这是VPN未激活时的默认网关,是否只是被绕过?
这是 OpenVPN 的一种技巧,可以通过隧道路由流量,同时维护默认网关。 0.0.0.0/1 和 128.0.0.0/1 路由优先于 0.0.0.0/0 路由,因为它们更具体,同时仍匹配所有地址。在 OpenVPN 文档中搜索“def1”以获取更多详细信息
10.7.7.1 怎么样?看起来这是VPN的网关...
可能是
OpenVPN 自动创建所有这些规则。但它们是基于什么而创建的呢?
它们可能是从服务器推送的。如果您可以在客户端启动时提供客户端的输出以及您的配置文件,我可以提供更多信息
我无法控制 VPN 的服务器端,只能控制客户端配置。
是的,但是客户端是高度可配置的,因此您可以覆盖服务器希望客户端执行的几乎任何操作。尽管如此,您仍需要满足提供商的基本要求才能进行连接。您还应该检查您的提供商的“使用条款”,以确保您不会惹恼他们。
现在如果我想:
强制所有到 216.58.213.174 的流量都通过 VPN tun0,而其余所有流量都通过 eth0?
是的,在您的配置中包含“route 216.58.213.174 255.255.255.255 10.7.7.125”。这应该设置您想要的路线。您应该能够通过从配置中删除“redirect-gateway”选项来保留其他路由
我可以在启动 VPN 时自动建立它吗?
是的,见上文
我所描述的所有选项以及更多内容都可以在 OpenVPN 的在线文档中找到。 https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage