我希望虚拟机 (Windows XP) 中的每个连接仅使用我的 OpenVPN 服务器,一旦与 OpenVPN 的连接断开,我希望 VM 中的所有互联网连接都断开。当然,VM 的主机 (Windows 7) 永远不会连接到 VPN,也不会断开与我的真实互联网的连接。
我很确定我可以使用 windowsroute
命令来执行此操作,该命令仅允许我的 Windows XP 计算机连接到我的 OpenVPN 服务器,我们会说1.2.3.4。
我遵循了以下指南:http://community.spiceworks.com/how_to/show/1334 但我甚至无法让他们的例子发挥作用。
以下是我通过以下命令进行的路由配置route print
路由预 openVPN 连接:
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.108 30
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.1.0 255.255.255.0 192.168.1.108 192.168.1.108 30
192.168.1.108 255.255.255.255 127.0.0.1 127.0.0.1 30
192.168.1.255 255.255.255.255 192.168.1.108 192.168.1.108 30
224.0.0.0 240.0.0.0 192.168.1.108 192.168.1.108 30
255.255.255.255 255.255.255.255 192.168.1.108 192.168.1.108 1
255.255.255.255 255.255.255.255 192.168.1.108 3 1
Default Gateway: 192.168.1.1
===========================================================================
Persistent Routes:
None
OpenVPN 连接后(注意 1.2.3.4 替换了我的真实 VPN IP):
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 128.0.0.0 10.8.0.5 10.8.0.6 1
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.108 30
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 1
10.8.0.4 255.255.255.252 10.8.0.6 10.8.0.6 30
10.8.0.6 255.255.255.255 127.0.0.1 127.0.0.1 30
10.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6 30
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
128.0.0.0 128.0.0.0 10.8.0.5 10.8.0.6 1
1.2.3.4 255.255.255.255 192.168.1.1 192.168.1.108 1
192.168.1.0 255.255.255.0 192.168.1.108 192.168.1.108 30
192.168.1.108 255.255.255.255 127.0.0.1 127.0.0.1 30
192.168.1.255 255.255.255.255 192.168.1.108 192.168.1.108 30
224.0.0.0 240.0.0.0 10.8.0.6 10.8.0.6 30
224.0.0.0 240.0.0.0 192.168.1.108 192.168.1.108 30
255.255.255.255 255.255.255.255 10.8.0.6 10.8.0.6 1
255.255.255.255 255.255.255.255 192.168.1.108 192.168.1.108 1
Default Gateway: 10.8.0.5
===========================================================================
Persistent Routes:
None
答案1
经过反复试验后,我找到了解决问题的方法:
为了防止 VPN 意外或随机断开连接并暴露您的真实 IP,您必须将所有目的地路由到虚假网关,但您的 VPN IP 除外。
致网络/计算机专家:
假设如下:
正常默认网关:192.168.1.1
未使用的私有 IP:192.168.1.222
OpenVPN 服务器 IP:1.2.3.4
使用cmd:
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.222 metric 2
route -p add 1.2.3.4 mask 255.255.255.255 192.168.1.1 metric 1
然后通过为适配器提供静态 IP 地址并使用未使用的私有 IP 作为虚假默认网关来禁用 DCHP;从而阻止除 OpenVPN 之外的所有连接
对于那些需要更循序渐进的方法的人:
您需要做的第一件事是按住 Windows 键(左 Ctrl 键右侧的按钮)并按 r 打开命令提示符,将出现一个对话框。输入“cmd”并按回车键。
应该会出现一个带有一些文字的黑框,这称为命令提示符,从现在开始发出的所有命令都将在这个黑框中完成。
首先要弄清楚,假网关一定位于网络接口内。什么是“接口”?好吧,在这种情况下,它是分配给计算机的私有 IP,根据我的“预 OpenVPN”表,这似乎是 2 个选项,要么127.0.0.1
要么192.168.1.108
。根据经验,我知道 127.0.0.1 是一个环回 IP,所以它缩小了范围。但是,如果我不知道我的 IP 地址,我可以单击运行 Windows 键 + r,然后输入 cmd,然后按 OK。出现一个黑框,输入 CMD 命令ipconfig
并获得如下输出:
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.108
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
它具体告诉我我的 IP 地址以及“接口”是192.168.1.108
,所以我的虚假网关必须在范围内192.168.1.100
,192.168.1.254
并且不能已被使用。
例如,假设我想使用 IP 192.168.1.101
,为了检查它是否可用,我会发出命令ping 192.168.1.101
,如果我收到如下回复:
Pinging 192.168.1.101 with 32 bytes of data:
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Reply from 192.168.1.101: bytes=32 time=1ms TTL=64
Ping statistics for 192.168.1.101:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 1ms, Average = 1ms
这表明 IP192.168.1.101
目前已被占用,我cannot
将其用作我的虚假网关。因此我决定尝试 IP 192.168.1.222
,并发出相同的 ping 命令:ping 192.168.1.222
。如果响应如下:
Pinging 192.168.1.222 with 32 bytes of data:
Reply from 192.168.1.100: Destination host unreachable.
Reply from 192.168.1.100: Destination host unreachable.
Reply from 192.168.1.100: Destination host unreachable.
Reply from 192.168.1.100: Destination host unreachable.
Ping statistics for 192.168.1.222:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
然后我就成功找到了一个目前未被使用的私有 IP,可以用作我的假网关。对于其余的回复,我将使用它192.168.1.222
作为我的假网关。
下一步是发送每个目的地尝试通过我们的假网关,而不是真正的网关。我们通过发出以下命令来执行此操作:
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.222 metric 2
意思0.0.0.0 mask 0.0.0.0
是“每个地址”都将被发送到网关192.168.1.222
。该metric 2
部分正在为该路由分配优先级2- 这很重要,因为优先级(指标)1将优先于2。
赋予它一个度量值 2 将使它的优先级高于您的 DHCP 分配的网关,对我来说是 30。这意味着每个目的地都将尝试通过网关 192.168.1.222 而不是真正的网关,本质上将您尝试建立的每个连接路由到无处。
您可以通过再次发出命令来验证您是否正确执行了此操作ipconfig
:
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.108
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.222
192.168.1.1
请注意,这次默认网关下列出了 2 个 IP 地址,而不仅仅是一个。还请注意,我们的假网关列在第一位(顶部),而真正的网关列在第二位。
这反过来意味着,当我们尝试连接到我们的 OpenVPN 服务器 IP 时,在这个例子中,1.2.3.4
它将被路由到虚假网关 (192.168.1.222) 并且不允许我们连接。我们不希望这样。因此,我们必须创建另一个优先级高于 (度量值较低) 2 的路由,即当连接到我们的 OpenVPN IP 时,我们希望它连接到真实网关 (192.168.1.1)。
我们要做的第一件事是确认 OpenVPN 服务器是什么,我们可以再次使用 ping 命令来做到这一点。通常,VPN 提供商会为您提供一个地址,例如要us.bestvpn.com
连接到的地址,我们需要找出此 URL 是哪个 IP 地址的别名,最好使用 ping 命令来完成,我们发出:
ping us.bestvpn.com
并且响应应该是这样的
Pinging us.bestvpn.com [1.2.3.4] with 32 bytes of data
括号内的 IP 地址是 OpenVPN 服务器的 IP 地址。我们将使用它1.2.3.4
作为 VPN 服务器 IP。
现在我们必须进行设置,以便该 IP 路由到我们的真实网关,我们通过发出以下命令来执行此操作:
route -p add 1.2.3.4 mask 255.255.255.255 192.168.1.1 metric 1
度量 1 将允许路由优先于我们为虚假网关路由提供的度量 2。需要注意的是,这mask 255.255.255.255
意味着确切的 IP 1.2.3.4
- 这对于我的情况是正确的,但您可能希望制作掩码,这实际上告诉它任何在到255.255.255.0
范围内的 IP 都将被路由到真实网关。如果您的 OpenVPN 提供商使用一系列 IP 连接到它,这将非常有用。1.2.3.0
1.2.3.254
现在我们应该能够像平常一样连接到 VPN,然后连接后就可以浏览整个互联网。断开连接后,您会注意到它似乎没有连接,然后突然间它就连接上了,并且使用了您的真实 IP,什么?!为什么会这样?
嗯,我的理解是,默认情况下,当 DCHP 意识到网关在这么多秒后仍无处可去时,它会尝试辅助网关,在本例中就是您的真实网关。
为了防止这种情况发生,您必须通过为您的互联网资产分配静态 IP、子网掩码和网关来关闭 DCHP。有关如何在 XP、Vista 和 7 中执行此操作的分步图片教程。
完成此操作后,再次连接到 VPN,验证它是否仍然有效,然后连接。尝试连接到一个网站并等待 2-3 分钟以确认不会加载并且您已完成所有设置。
这样就可以防止随机 VPN 断开连接而暴露您的真实 IP 地址。
答案2
如果你担心 OpenVPN 中的 DNS 和 IP 泄漏,并且需要一种简单且自动的方法来防止使用 OpenVPN 时的 IP 和 DNS 泄漏,请查看 www.openvpnchecker.com 提供的这两个简单工具
OpenVPN 监控工具:http://openvpnchecker.com/
OpenVPN防火墙:http://openvpnchecker.com/firewall.htm 编辑/删除消息