每次你打開一個網站,裝置都會請一台解析伺服器把網域名稱換成 IP 位址。這個提問就是一筆明文紀錄,寫著你接下來要去哪裡,而在預設情況下,它會送到你的網路指派給你的那台解析伺服器 —— 通常就是你的網路業者的。

DNS 洩漏就是這些查詢跑到了你沒打算讓它去的地方。最常見的情況是:裝置設定成使用私人或加密的解析伺服器,卻因為幾種結構性的原因之一,仍然把部分或全部的查詢送給了 ISP。表面上什麼都沒壞掉,這正是洩漏可以無聲無息持續好幾年的原因。

DNS 到底暴露了什麼?

網域、時間戳記,以及來源 —— 這三樣已經足以還原一整段瀏覽過程。

傳統 DNS 走 53 埠、不加密。任何處在你與解析伺服器之間的人都能讀到查詢內容,而解析伺服器本身看得到其中的每一筆,並且全部歸到你這條連線名下。它看不到具體是哪一頁,但敏感的部分通常就在網域。

加密改變的是這份紀錄握在誰手上,而不是它存不存在:

傳輸方式 有加密嗎? 誰看得到查詢
明文 DNS(53 埠) 沒有 你的網路、你的 ISP、解析伺服器
DNS over TLS(DoT,853 埠) 你選的那台解析伺服器
DNS over HTTPS(DoH,443 埠) 你選的那台解析伺服器;網路端較難把它跟一般網頁流量區分開來
DNSSEC 沒有 —— 它做的是驗證 跟明文 DNS 一樣;它證明答案沒被竄改,但不會把答案藏起來

DNSSEC 是最常被誤解的一項。它替回應簽章,讓回應無法被偽造。它完全不提供任何機密性。

洩漏實際上是怎麼發生的?

六種結構性成因,幾乎涵蓋了全部。

成因 機制
分流路由 一部分流量走隧道,DNS 卻走預設網路介面
IPv6 沒被帶進隧道 隧道只處理 IPv4,於是 IPv6 查詢走回 ISP 那條路
作業系統平行解析 Windows 會同時向所有網路介面發問,誰先回就用誰的
瀏覽器層級的 DoH 瀏覽器獨立於系統設定自行解析,兩個方向都可能出事
路由器覆寫 路由器透過 DHCP 強制指定自己的解析伺服器,或直接攔截 53 埠
網路認證頁 飯店或機場的網路劫持 DNS,把你導向它的登入頁

瀏覽器那一項值得說清楚,因為它是雙向的。有自己 DoH 設定的瀏覽器可能繞過你辛苦設好的系統解析伺服器;反過來,一個設定正確的瀏覽器,也可能掩蓋掉「這個瀏覽器以外的所有東西都還在洩漏」這件事。只檢查其中一邊、然後假設另一邊沒問題,是最常見的檢測錯誤。

那該怎麼檢查?

每一層分開測,因為它們的結果可能互相矛盾。

作業系統 —— 目前設定了哪些解析伺服器:

系統 指令
macOS scutil --dns | grep nameserver
Windows Get-DnsClientServerAddress
Linux(systemd-resolved) resolvectl status
Linux(通用) cat /etc/resolv.conf

實際回答你的是哪一台 —— 設定跟實際行為是兩回事:

dig +short whoami.akamai.net 會回傳那台替你完成查詢的解析伺服器的 IP 位址。拿它跟你預期的那一台比對。

**瀏覽器層級:**打開瀏覽器的安全 DNS 設定,看它有沒有啟用、選的是哪一家供應商。然後在同一個瀏覽器裡開一個 DNS 洩漏檢測頁。如果那頁回報的解析伺服器跟你在命令列測到的不同,就代表瀏覽器在自行解析。

**IPv6:**用純 IPv6 的查詢再測一次。隧道只承載 IPv4,是部分洩漏最常見的單一成因。

結果該怎麼判讀?

拿解析伺服器的歸屬方跟你的預期比對,而不是跟一份「安全位址」清單比對。

觀察到的情況 判讀
解析伺服器屬於你的 ISP,但你明明設了另一台 洩漏
列出好幾台,其中一台是你的 ISP 部分洩漏 —— 查詢被分流了
IPv4 顯示的是預期的那台,IPv6 顯示 ISP IPv6 洩漏
瀏覽器與系統回報的解析伺服器不同 不一定是洩漏,但代表有兩條獨立的路徑要各自確認
解析伺服器落在意料之外的國家 通常是正常的 —— anycast 解析伺服器由最近的節點回應
解析伺服器是路由器的私有位址 無法判定;路由器會再往上轉送,要去看路由器自己的設定

最後一列是家用網路的陷阱。結果顯示 192.168.1.1,只告訴你「是你的路由器回答的」。路由器再轉送給誰,是另一個問題,答案在路由器的 WAN 或 DNS 設定裡。

修好它,極限在哪裡?

修好 DNS 洩漏,改變的是「誰會知道你查了哪些網域」。它不會讓你的造訪變得隱密,而把這件事講過頭,正是這個題目最常被扭曲的方式。

名稱解析完之後,你的裝置會對那個 IP 位址開一條連線。路徑上的任何觀察者都看得到目的位址,而大多數 TLS 連線在交握階段就以未加密的方式傳送伺服器名稱,除非兩端都啟用了 Encrypted Client Hello。這兩個訊號,都能在完全不依賴 DNS 的情況下認出是哪個網站。

所以誠實的結論是:範圍很窄,但確實有用 —— 把 DNS 加密、送到你自己選的解析伺服器,可以讓「你造訪過的每一個網域」這份明文清單從你的本地網路與 ISP 的日誌裡消失,然後把這份清單轉交給解析伺服器的營運方。它搬動了信任,而不是消除信任 —— 這也讓「誰在經營那台解析伺服器、他們記錄了什麼」,變成真正要緊的那個問題。

相關問題