如何調試 DNS 名稱解析? (nslookup 有效,但 telnet 無效)

如何調試 DNS 名稱解析? (nslookup 有效,但 telnet 無效)

我正在嘗試連接到一個網站:

http://superuser.com.sixxs.org

我可以 ping 位址:

C:\Users\Ian>ping /6 superuser.com.sixxs.org

Pinging ipv6.nginx.sixxs.net [2001:838:2:1::30:67] with 32 bytes of data:
Reply from 2001:838:2:1::30:67: time=257ms
Reply from 2001:838:2:1::30:67: time=176ms
Reply from 2001:838:2:1::30:67: time=161ms
Reply from 2001:838:2:1::30:67: time=164ms

Ping statistics for 2001:838:2:1::30:67:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 161ms, Maximum = 257ms, Average = 189ms

但兩者都沒有:

C:\Users\Ian>ping supersuer.com.sixxs.org
Ping request could not find host supersuer.com.sixxs.org.
  Please check the name and try again.

但我無法瀏覽到它(在鉻合金或者IE):

在此輸入影像描述

我也不能遠端登入到它

C:\Users\Ian>telnet superuser.com.sixxs.org 80
Connecting To superuser.com.sixxs.org...Could not open connection to the host,
  on port 80: Connect failed

nslookup可以很好地解析名稱,並具有權威記錄和一切!

首先我們刷新 dns,以防萬一有人認為這是由於 dns 快取造成的:

C:\Users\Ian>ipconfig /flushdns

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.

現在回到尋找:

C:\Users\Ian>nslookup superuser.com.sixxs.org
Server:  solo.avatopia.com
Address:  10.0.0.98

Non-authoritative answer:
Name:    ipv6.nginx.sixxs.net
Addresses:  2001:838:2:1:2a0:24ff:feab:3b53
          2001:960:800::2
          2001:1af8:4050::2
          2620:0:6b0:a:250:56ff:fe99:78f7
          2001:838:2:1::30:67
Aliases:  superuser.com.sixxs.org

所有這些地址都有效:

  • 我可以ping他們
  • 我可以telnet在它們上使用連接埠 80
  • 我可以瀏覽鉻合金(例如http://[2001:838:2:1::30:67])對他們

該名稱甚至在以下情況下解析:我手動呼叫Windows API函數GetAddrInfo

為什麼我如何診斷pingtelnetChromeInternet Explorer做錯了什麼?

筆記:Wireshark 現在可以提供協助,因為 dns 伺服器 ( solo.avatopia.com) 位於加密 VPN 連結的另一端;且 WireShark 拒絕解密加密的 VPN 流量。

答案1

DNS 解析並不自動意味著 HTTP 可及性;就您而言,這實際上是問題的一部分。

sixxs.org答案全部CNAME使用to進行 DNS 查詢ipv6.nginx.sixxs.net。例如,iamugly顯然不可能是真實的站點,因為沒有頂級網域。

[mpenning@Bucksnort ~]$ dig +short iamugly.sixxs.org
ipv6.nginx.sixxs.net.
[mpenning@Bucksnort ~]$ dig +short google.com.sixxs.org
ipv6.nginx.sixxs.net.
[mpenning@Bucksnort ~]$ dig google.com.sixxs.org

; <<>> DiG 9.7.3 <<>> google.com.sixxs.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22229
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.sixxs.org.          IN      A

;; ANSWER SECTION:
google.com.sixxs.org.   3553    IN      CNAME   ipv6.nginx.sixxs.net.

;; AUTHORITY SECTION:
sixxs.net.              3316    IN      SOA     ns.paphosting.net. hostmaster.sixxs.net. 2012010601 86400 7200 1209600 86400

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 28 15:39:58 2012
;; MSG SIZE  rcvd: 133

[mpenning@Bucksnort ~]$

ipv6.nginx.sixxs.net只是一個轉送流量的 HTTP 代理,因此只要他們的代理啟動,它就可以 ping 通,您就可以telnet...

[mpenning@Bucksnort ~]$ telnet superuser.com.sixxs.org 80
Trying 2620:0:6b0:a:250:56ff:fe99:78f7...
Connected to ipv6.nginx.sixxs.net.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
[mpenning@Bucksnort ~]$

在您轉到 後superuser.com.sixxs.orgsixxs.net將您重定向到ipv6gate.sixxs.net,他們重寫超級用戶的 html 內容,透過 發送頁面上的所有連結foo.sixxs.org

在此輸入影像描述

有些東西會阻止您通過sixxs.org,它可能來自您路徑中其他地方的 VPN 伺服器、防火牆或透明 http 代理。

答案2

這是我的猜測關於正在發生的事情。

(我本來打算將其作為評論發布,但它太長了,所以我將其作為答案發布,並由您自己和/或其他人來決定它是否正確。)

我認為這個 isp 的網域名稱伺服器配置為回覆每個子網域。

我嘗試了隨機 GUID,是的0937c1fa-15dc-4a3a-837c-b9ada0953a7e.sixxs.org解析(並解析為與 superuser.com.sixxs.org 相同的 IP 位址)

這意味著流向 0937c1fa-15dc-4a3a-837c-b9ada0953a7e.sixxs.org 的所有流量都將發送給他們。當他們收到訊息時,他們可能正在檢查 http 主機標頭以確定如何處理它。就 0937c1fa-15dc-4a3a-837c-b9ada0953a7e.sixxs.org 而言,我懷疑他們會簡單地忽略該請求,因為他們不太可能知道如何處理它。

對於 superuser.com.sixxs.org,您可能會認為他們應該將其重定向到 superuser.com,但這似乎不起作用。

我認為他們的設定之外的任何人都不可能確切地知道為什麼這不起作用,但這可能是因為他們有一些內部映射錯誤並且它發送到錯誤的目的地。

另一種可能性是,他們可能不會向所有人提供此服務,並且如果非訂閱者嘗試使用此地址,它可能會簡單地忽略該請求。

底線是,我不太確定 telnet、Chrome 和 Internet Explorer 是否真的做錯了什麼,我建議在假設您的設定有任何問題之前先檢查 Sixxs.net。

答案3

我有一個類似的問題,這就是我嘗試過的。

  1. 可能跟Winsock的LSP有關,試試LSP修復找出導致錯誤的東西。
  2. 重置網際網路協定 (TCP/IP)
  3. 運行sfc /scannow以修復因文件損壞而可能出現的任何問題。
  4. 重置 WinSock netsh winsock reset
    5.雖然完全不相關,但請嘗試重置分支緩存netsh branchcache reset
    6.重置 IPv6 配置netsh int ipv6 reset
    7.嘗試從設備管理器中刪除並重新安裝網路適配器

答案4

我不確定您是否只在一個網站上遇到問題,或者您是否無法連接到所有網站(並且正在使用另一台電腦來發布此內容),但如果您的瀏覽器中出現 DNS 錯誤每個站點,並且您仍然具有連接性並且可以ping 東西,請嘗試這幾個命令。它並不總是其中之一,但我確實從未見過它們都不能解決您的問題。

netsh winsock reset catalog

netsh int ipv4 reset reset.log

netsh int ipv6 reset reset.log

ipconfig /release

ipconfig /flushdns

ipconfig /renew

ipconfig /registerdns

相關內容