如何防止 VPN 断开连接时暴露您的 IP?

如何防止 VPN 断开连接时暴露您的 IP?

我希望虚拟机 (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.100192.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.01.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 提供的这两个简单工具

  1. OpenVPN 监控工具:http://openvpnchecker.com/

  2. OpenVPN防火墙:http://openvpnchecker.com/firewall.htm 编辑/删除消息

相关内容