我試圖了解 DNS 路由在有/沒有 VPN 的情況下如何運作。我有以下介面。
Wireless LAN adapter Wi-Fi:
DNS Servers . . . . . . . . . . . : 192.168.40.1
nslookup 對此有效:
nslookup google.com 192.168.40.1
Address: 192.168.40.1
Non-authoritative answer:
Name: google.com
如果我正在運行 VPN,我會獲得另一個接口,並且 DNS 查詢預設路由到此接口。
Unknown adapter Mullvad:
DNS Servers . . . . . . . . . . . : 10.8.0.1
但是,如果我現在嘗試在另一個介面上查詢 DNS,它不會通過。
nslookup google.com 192.168.40.1
DNS request timed out.
但我可以毫無問題地向本地伺服器發出請求。
curl 192.168.40.22:8080
OK
這是如何運作的? ip流量通過但DNS被阻止?據我所知,VPN 通常會設定路由表規則來將流量引導至其網關。但這是ip正確嗎? DNS 不應受其影響。這背後的根本機制是什麼?有沒有辦法可以強制在另一個介面上進行 DNS 查詢?
這是在 Windows 上,但我猜它在 Linux 上也能類似地運作。
答案1
一個簡化的答案:
根據配置方式,VPN 用戶端強制所有流量通過虛擬接口,IE, 它會阻止本地 LAN 上的流量。由於沒有本地流量,因此當隧道處於活動狀態時,用戶端可以使用不同的名稱伺服器。
答案2
我想念一個ip配置不管怎樣,在這兩種情況下,聽起來如果沒有 VPN,您可以從本機 DCHPd 獲得 IP 和預設名稱伺服器,因此您的電腦可以向本機名稱伺服器請求 DSN 解析。
連接到 VPN 後,聽起來您從 VPN 伺服器獲得了另一個 IP,並將預設路由設置為 VPN 接口,這意味著所有流量都通過 VPN,這可能無法到達您的本地名稱伺服器。
若要解決此問題,您可以使用可從兩個網路存取的全域 DNS 伺服器(例如 8.8.8.8 或 1.1.1.1)。