
我嘗試使用一些 DNS 服務(例如 OpenDNS),但無論我做什麼,DNS 查詢都不會傳回預期結果。觀察防火牆上的封包流量,我可以看到查詢發送到預期的 DNS 伺服器位址並回傳回應,但結果並不符合預期,例如,OpenDNS 測試頁面總是失敗,即使請求看起來像是去他們的伺服器。
我懷疑我的 ISP 正在攔截 DNS 查詢並將其發送到自己的伺服器。有沒有辦法驗證這一點?我可能還缺其他東西嗎?我正在使用 Sprint 的 3G 無線服務。
答案1
打電話給他們問問?
來自一個OpenDNS 論壇上的帖子(2010 年 2 月):
我今天與斯普林特進行了交談。
這是與我通電話的人告訴我的。
“是的,sprint 正在連接埠 53 上重定向 DNS”(顯然我們在 opendns 知道這一點)“是的,即使對於靜態帳戶也是如此”
根據鏈接,顯然您的 Sprint 設備可能有韌體升級,允許使用 OpenDNS來自 Sprint 的 PDF在同一則訊息中。
答案2
有多種方法可以檢查您的 ISP 是否使用透明 DNS 代理。這取決於您的 ISP 如何實施它。我的 ISP 將所有連接埠 53 請求重新導向到他們自己的遞歸 DNS 伺服器(不過他們不在 NXDOMAIN 上提供廣告。也許他們使用它來記錄日誌或防止 DNS 隧道)。我將提到一些通用的檢測方法。
對權威名稱伺服器執行 DNS 查找並檢查回覆是否權威。對於這個例子,我將使用
dig
.你也可以使用nslookup
。如果回復是權威的,dig會aa
在回復中顯示flag。現在,a.ns.facebook.com是fb.me的權威NS。如果您的 ISP 攔截並重新導向該請求,您將不會得到權威回應。dig @a.ns.facebook.com fb.me
(左一不攔截DNS)
dig
執行或時,指定一個沒有執行 DNS 伺服器的 IP 位址作為 DNS 伺服器nslookup
。如果您的 ISP 攔截您的請求,您仍然會收到回覆。否則你會得到Time Out
. (右一攔截並重定向請求)
對隨機 IP 位址使用 nmap。如果您的 ISP 重定向所有連接埠 53 請求,您將始終看到連接埠 53 處於開啟狀態。
變更您的電腦網路設定並使用 Google 公用 DNS 或 OpenDNS 或 Cloudflare DNS IP(一次使用一種提供者類型)。然後去DNS 洩漏測試網站並注意是否出現任何不同的提供者。
繞過 ISP 攔截並不難。你需要使用DNS加密/DNS over TLS 或使用在非標準連接埠(例如:5353 或 443)上執行的任何 DNS 伺服器。在第二種方法中,您必須使用路由器或電腦防火牆將傳出 DNS 查詢重新導向至這些連接埠。詳細討論這些方法超出了本文的範圍。
答案3
嘗試對您認為將發送給不同提供者(例如 OpenDNS 和 Google)的一些 DNS 請求進行計時。如果它們相同,則它們一定是由 ISP 接收並提供服務(邏輯錯誤,但有可能)。實現此目的的一種方法是使用名稱庫,通常用於為您的連線選擇最佳的 DNS 伺服器。