IPdidi
繁體中文

DNS洩漏是什麼?該如何修正?

就算開著VPN,你的裝置可能仍在向網路業者查詢你造訪的每個網站,這就是DNS洩漏。以下教你如何發現並阻止它。

30秒認識DNS

裝置在開啟網站之前,必須先把 example.com 這樣的名稱轉換成IP位址。這是透過詢問 DNS解析伺服器 完成的,通常由你的網路業者提供。它能看到你查詢的每個網站名稱、查詢時間,以及你的IP位址。

什麼是DNS洩漏?

使用VPN時,這些查詢應該經過加密通道,送到VPN自己的DNS伺服器。DNS洩漏 指的是查詢繞過了通道,直接送到網路業者或其他外部DNS伺服器。

你的流量本身仍然是加密的,但DNS伺服器能看到你造訪過的所有網站清單,監看你連線的人也看得到。在部分國家,網路業者會利用DNS封鎖網站,所以DNS洩漏也可能讓被封鎖的網站即使開著VPN也打不開。

DNS洩漏不會改變網站看到的IP位址,而是把你造訪了哪些網站暴露給網路業者。所以光檢查IP是發現不了DNS洩漏的。

如何測試DNS洩漏

  1. 連上VPN。
  2. 開啟DNS洩漏測試。它會讓瀏覽器查詢幾個只有我們的測試伺服器能回應的隨機名稱,並記錄是哪些DNS伺服器送出查詢。
  3. 查看列出的DNS伺服器。

沒有洩漏: 每台DNS伺服器都屬於你的VPN服務商,或與VPN出口位於同一個國家。

有洩漏: 出現你自己網路業者的DNS伺服器,或VPN伺服器在其他國家,卻出現你所在國家的DNS伺服器。

Google(8.8.8.8)和Cloudflare(1.1.1.1)等大型公用DNS在全球都有伺服器。對於這類伺服器,測試結果還會顯示它們轉送的用戶端子網路,即使DNS伺服器本身看起來沒問題,這個子網路也可能洩漏你的真實網路。

DNS洩漏的常見原因

如何修正DNS洩漏

從第一步開始,每完成一步就重新測試一次。

  1. 開啟VPN的DNS洩漏防護。 大多數好的VPN App都有「DNS洩漏防護」、「僅使用VPN DNS」之類的設定。同時也開啟終止開關(Kill Switch)。
  2. 開啟IPv6洩漏防護,或在VPN App中封鎖IPv6。原因請見IPv4和IPv6的差別。
  3. 在VPN設定檔中指定DNS。 WireGuard請在 [Interface] 區段加入一行 DNS =。OpenVPN在Windows上請使用 block-outside-dns。
  4. 代理工具請開啟TUN模式(Clash、sing-box等軟體稱為TUN模式、增強模式或VPN模式),並開啟它們的DNS處理功能,讓所有查詢都經過代理。
  5. 檢查瀏覽器的安全DNS設定。 在Chrome或Edge中,位置是 設定 > 隱私權和安全性 > 安全性 > 使用安全 DNS。可以關閉它,讓瀏覽器使用VPN的DNS,或改成你信任的DNS伺服器。
  6. 最後備案:把系統DNS改成公用DNS。 這無法解決洩漏給該DNS伺服器的問題,但可以讓網路業者看不到你的查詢。

接著再執行一次DNS洩漏測試。想完整檢查VPN,包括WebRTC和IPv6,請看如何檢查VPN是否有效。

常見問題

DNS洩漏危險嗎?

它暴露的是你造訪了哪些網站,而不是密碼或網頁內容,後者仍受HTTPS保護。不過,如果你使用VPN是為了隱私,DNS洩漏會讓VPN失去大半的意義。

DNS洩漏會暴露我的真實IP嗎?

間接會。網路業者的DNS伺服器看得到你的真實IP,而會轉送用戶端子網路的DNS伺服器,會告訴網站的DNS伺服器你大概在哪裡。不過網站本身無法透過DNS看到你的IP。

使用1.1.1.1或8.8.8.8能防止DNS洩漏嗎?

不能。這只是把看得到你查詢的對象從網路業者換成Cloudflare或Google,查詢仍可能繞過VPN。只有讓DNS經過VPN才能真正阻止洩漏。

為什麼測試結果顯示其他國家的伺服器?

大型DNS服務會從離你或離VPN伺服器最近的資料中心送出查詢,這個資料中心可能在鄰近國家。看一下網路名稱:如果是你的VPN服務商,或VPN伺服器附近的大型公用DNS,那就沒問題。