AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 420336
Accepted
ParoX
ParoX
Asked: 2012-08-24 00:14:08 +0800 CST2012-08-24 00:14:08 +0800 CST 2012-08-24 00:14:08 +0800 CST

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

  • 772

我希望虚拟机 (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
networking
  • 2 2 个回答
  • 4563 Views

2 个回答

  • Voted
  1. Best Answer
    BHare
    2012-08-24T02:59:10+08:002012-08-24T02:59:10+08:00

    经过反复试验,我找到了解决问题的方法:

    为了防止 VPN 的所有意外或随机断开连接暴露您的真实 IP,您必须路由所有目的地以通过虚假网关,但您的 VPN IP 除外。

    致网络/计算机专家:

    假设如下:

    正常默认网关:192.168.1.1
    未使用的私有 IP:192.168.1.222
    OpenVPN 服务器 IP:1.2.3.4

    使用命令:

    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,这似乎是 2 个选项,给定我的“pre-OpenVPN”表127.0.0.1或者192.168.1.108. 我从经验中知道 127.0.0.1 是一个环回 IP,所以它缩小了范围。但是,如果我不知道我的 IP 地址,我可以单击运行 Windows 键 + r 并输入 cmd 并按确定。出现一个黑框并键入 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并且不能已经在使用中。

    例如,假设我想使用 IP192.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将其用于我的假网关。所以我决定尝试 IP192.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意味着“每个地址”都将发送到 gateway 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这对我的情况来说是正确的,但你可能想要制作一个掩码,它基本上告诉它to255.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 地址的方法。

    • 1
  2. maggot
    2013-05-20T02:13:10+08:002013-05-20T02:13:10+08:00

    如果您担心 OpenVPN 中的 DNS 和 IP 泄漏,并且在使用 OpenVPN 时需要一种简单自动的方法来防止 IP 和 DNS 泄漏,请查看 www.openvpnchecker.com 提供的这两个简单工具

    1. OpenVPN 看门狗: http: //openvpnchecker.com/

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

    • 0

相关问题

  • 谁能指出我的 802.11n 范围扩展器?

  • 我怎样才能得到一个网站的IP地址?

  • 在一个 LAN 中使用两台 DHCP 服务器

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve