如何防止 VPN 在斷開連線時暴露您的 IP?

如何防止 VPN 在斷開連線時暴露您的 IP?

我希望虛擬機器(Windows XP)中的每個連線都只使用我的 OpenVPN 伺服器,一旦 OpenVPN 連線遺失,我希望失去虛擬機器中的所有網路連線。當然,虛擬機器的主機 (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

使用命令:

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”並按 Enter 鍵。

應該會出現一個黑框,上面有一些文字,稱為命令提示符,從這裡發出的所有命令都將在這個黑框中完成。

首先要確定假網關必須位於網路介面內。什麼是“接口”?在這種情況下,它是分配給電腦的私人 IP,鑑於我的“pre-OpenVPN”表,這似乎是 2 個選項127.0.0.1192.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,並且不能已在使用中。

例如,假設我想使用 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將其用於我的假網關。所以我決定嘗試 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意味著“每個位址”將被發送到網關192.168.1.222。該metric 2部分正在為該路由分配優先權2- 這很重要,因為優先順序(指標)為1將優先於以下優先級2

將其度量設為2 將使其具有比DHCP 分配的網關更高的優先級,對我來說是30。是路由每個連接你嘗試去任何地方。

您可以透過再次發出命令來驗證您是否正確執行了此操作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 位址,而不是 1 個。也請注意我們的假網關如何列在第一(頂部),而真正的網關列在第二。

這反過來意味著,當我們嘗試連接到我們的 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 意識到網關在這麼多秒後無處可去時,它將嘗試嘗試輔助網關,在本例中是您的真正網關。

為了防止這種情況發生,您必須透過為您的 Internet 屬性指派靜態 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 編輯/刪除訊息

相關內容