我希望虚拟机 (Windows XP) 中的每个连接都只使用我的 OpenVPN 服务器,一旦失去与 OpenVPN 的连接,我就想失去虚拟机中的所有互联网连接。自然地,VM 的主机 (Windows 7) 永远不会连接到 VPN,也不会断开与我的真实互联网的连接。
我很确定我可以使用route
仅允许我的 Windows XP 机器连接到我的 OpenVPN 服务器的 Windows 命令来执行此操作,我们会说是1.2.3.4。
我遵循了本指南: http: //community.spiceworks.com/how_to/show/1334 但我什至无法让他们的示例发挥作用。
这是我通过发出命令进行的路由配置route print
路由 pre-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
经过反复试验,我找到了解决问题的方法:
为了防止 VPN 的所有意外或随机断开连接暴露您的真实 IP,您必须路由所有目的地以通过虚假网关,但您的 VPN IP 除外。
致网络/计算机专家:
假设如下:
正常默认网关:192.168.1.1
未使用的私有 IP:192.168.1.222
OpenVPN 服务器 IP:1.2.3.4
使用命令:
然后通过为适配器提供静态 IP 地址并使用未使用的私有 IP 作为伪造的默认网关来禁用 DCHP;从而阻止除您的 OpenVPN 之外的所有连接
对于那些需要更循序渐进的方法的人:
您需要做的第一件事是按住 Windows 键(左侧 Ctrl 右侧的按钮)打开命令提示符,然后按 r,将出现一个对话框。输入“cmd”并按回车键。
应该会出现一个带有一些文字的黑框,这称为命令提示符,从这里发出的所有命令都将在这个黑框中完成。
第一件事是弄清楚假网关必须位于网络接口内。什么是“接口”?那么在这种情况下,它是分配给计算机的私有 IP,这似乎是 2 个选项,给定我的“pre-OpenVPN”表
127.0.0.1
或者192.168.1.108
. 我从经验中知道 127.0.0.1 是一个环回 IP,所以它缩小了范围。但是,如果我不知道我的 IP 地址,我可以单击运行 Windows 键 + r 并输入 cmd 并按确定。出现一个黑框并键入 CMD 命令ipconfig
并获得如下输出:在那里它特别告诉我我的 IP 地址,因此“接口”是
192.168.1.108
,所以我的假网关必须在范围内192.168.1.100
,192.168.1.254
并且不能已经在使用中。例如,假设我想使用 IP
192.168.1.101
来检查它是否被使用,我会发出命令ping 192.168.1.101
,如果我得到这样的回复:这将表明该 IP
192.168.1.101
当前已被占用,我cannot
将其用于我的假网关。所以我决定尝试 IP192.168.1.222
并发出相同的 ping 命令:ping 192.168.1.222
。如果响应如下:然后我会成功找到一个当前未使用的私有 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
意味着“每个地址”都将发送到 gateway192.168.1.222
。该metric 2
部分为此路由分配优先级2 - 这很重要,因为 1 的优先级(度量)将优先于2的优先级。给它一个 2 的度量值将使它的优先级高于 DHCP 分配的网关,对我来说是 30。这意味着每个目的地都将尝试通过网关 192.168.1.222 而不是真正的网关,基本上路由每个连接你试图让任何地方。
您可以通过再次发出
ipconfig
命令来验证您是否正确地执行了此操作:注意这次我们在默认网关下列出了 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
这对我的情况来说是正确的,但你可能想要制作一个掩码,它基本上告诉它to255.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 地址的方法。
如果您担心 OpenVPN 中的 DNS 和 IP 泄漏,并且在使用 OpenVPN 时需要一种简单自动的方法来防止 IP 和 DNS 泄漏,请查看 www.openvpnchecker.com 提供的这两个简单工具
OpenVPN 看门狗: http: //openvpnchecker.com/
OpenVPN 防火墙: http: //openvpnchecker.com/firewall.htm 编辑/删除消息