iMac 無法解析某些網站的 DNS(或找到主機的路由?),但 Windows 可以?

iMac 無法解析某些網站的 DNS(或找到主機的路由?),但 Windows 可以?

在我的家庭網路中,我有幾台基於 Windows 的 PC,它們沒有已知的 DNS 問題,但在我的 OSX iMac 上,我在解析幾個隨機網域時遇到問題。我遇到問題的一些領域是:

  • 億豪網
  • about.com
  • 全國購物服務網

除了看/etc/主機文件(我認為很好)我應該在 iMac 上檢查哪些與 DNS 相關的問題,或者我應該使用哪些工具來幫助診斷我面臨的問題?

使用 dig 指令我得到:

; <<>> DiG 9.4.3-P3 <<>> @4.2.2.2 www.nationalshoppingservice.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3468
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.nationalshoppingservice.com. IN    A

;; ANSWER SECTION:
www.nationalshoppingservice.com. 14400 IN A 64.40.111.81

;; Query time: 86 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Apr 12 18:22:42 2011
;; MSG SIZE  rcvd: 65

在嘗試了一些建議之後,我相信 DNS 是錯誤的問題...當我對 www.nationalshoppingservice.com 進行 ping 操作時,這就是我得到的結果:

PING www.nationalshoppingservice.com (64.40.111.81): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host

那麼看起來 DNS 正在解析,但無法找到到主機的路由?這裡發生了什麼事?

答案1

命令列將成為你的朋友。第一,您可能根本沒有 DNS 問題。你需要先確定這一點。這項工作的最佳工具是dig.打開終端機並輸入

dig @4.2.2.2 ehow.com

該指令的組成部分:

dig          :   the command
@4.2.2.2     :   this tells dig where to ask.  We are specifically asking a
                 known provider in this case Level3.  You could easily put
                 8.8.8.8 (Google) or any other provider here.
ehow.com     :   the domain you wish to query for.

您將得到如下輸出:

; <<>> DiG 9.7.2-P2 <<>> @4.2.2.2 ehow.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43699
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ehow.com.          IN  A

**;; ANSWER SECTION:
ehow.com.       118 IN  A   98.124.249.20**

;; Query time: 1 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Apr 11 01:51:12 2011
;; MSG SIZE  rcvd: 42

答案部分是重要的部分。如果您得到答案,那麼您就知道您的 iMac 沒有問題,並且它可以「取得」對該網域的存取權。

下一步是將 @4.2.2.2 替換為常規 DNS 伺服器的 IP 或主機名稱。這通常由您的 ISP 提供給您。如果您得到相同的答案,那麼您就知道 DNS 不是您的問題,您可以開始尋找其他地方。您還需要執行幾次這些測試,以確保獲得良好的回應時間。如果你曾經得到過:

;; connection timed out; no servers could be reached

然後您就知道您沒有得到回覆。如果這種情況間歇性地發生,由於快取的原因,您可能會在 iMac 上比 Windows 電腦上更注意到這種情況。根據我的經驗,我發現 Windows 機器快取 DNS 回應的時間比 Mac 機器長。

答案2

要解決 Mac OS X 上的 DNS 問題,您必須使用傳統的 Unix DNS 查找工具,例如(選擇一個:)hostdignslookup,以及調用 Mac OS X 特定 DNS 查找 API 的現代工具,例如dns-sd -Q.

大多數 Cocoa 應用程式呼叫的 DNS 查找 API 都是透過mDNSResponder守護程序路由的,這表示如果您的 GUI 應用程式遇到 DNS 查找問題,dns-sd -Q可能會向您顯示相同的內容。

傳統的 Unix DNS 查找工具使用更傳統的 Unix DNS 解析器程式碼,這意味著它們可能能夠解決 Cocoa 應用程式無法解決的問題(反之亦然)。

如果您可以使用 查找某些內容,dig但不能使用 查找dns-sd,那麼您可以嘗試終止mDNSResponder守護程序並讓其launchd自動重新啟動(我發現 HUPping mDNSResponder 並不總是足夠)。

sudo killall mDNSResponder

答案3

您的 iMac 上是否安裝了任何 IP 封鎖軟體或類似軟體?

另外,嘗試進入“首選項”->“網路”->“進階”->“DNS”並重置您的 DNS 項目;擺脫任何無關的。

如果這不起作用,請嘗試(暫時)在 iMac 上建立新帳戶,或登入另一個帳戶,然後查看是否可以從這些帳戶存取網站。

答案4

若要測試某些內容,您可以前往“首選項”->“網路”->“進階”->“DNS”,並為 Google 的公共 DNS 8.8.8.8 新增 DNS 項目。如果這解決了問題,那麼您必須弄清楚路由器在分發 IP 位址和 DNS 資訊時使用的 DHCP 設定。如果您的路由器從 ISP 獲取 DNS 訊息,那麼這可能是您的問題,可能只是響應緩慢。您不必使用 ISP 的 DNS 設定。

我經常使用 8.8.8.8 進行測試,但主要使用 Opendns 來增加控制。

希望有幫助

相關內容