Domain-Name-System

如何調試一個人似乎無法訪問但另一個人(作為使用者,而不是開發人員或管理員)無法訪問的網站?

  • January 24, 2022

我有一個攝影師的網站,拍攝了一些照片並通過他的網站分享。該網站似乎可以在一個國家/地區執行(它適用於一位家庭成員),但它甚至不適合我。

該站點不使用 ssl,因此我懷疑某些本地 DNS 問題是罪魁禍首。

traceroute 似乎對域很慢, mtr 似乎表明它可以找到它。whois 似乎也找到了一個條目。

我還應該看什麼來調試這個?我已經嘗試了一些瀏覽器和電腦(全部來自失敗的位置)。

更新:我現在已經用 Tor 載入了一次網站。不知道那告訴我什麼。

要訪問網站,您需要以相反的順序:

  • 正確的 TLS 配置(證書等)
  • 一個適當的 HTTP 伺服器監聽 HTTPS 的 80 和 443 埠
  • 一個正常工作的防火牆,讓該流量通過
  • 從“任何地方”到該伺服器的正確 IP 路由
  • 如果一切都以一個名稱開頭(從 URL 中提取),則您需要從該名稱到某個 IP 地址的正確名稱解析(通常是 DNS,但不一定在所有地方)。

所以你需要從底部開始測試所有這些東西。您可以使用瀏覽器自己的內部 Web 開發人員工具,或外部命令(如果您可以使用命令行工具,您將獲得更好/更簡單/更快/更正確的故障排除)或各種網站上的最差服務。

我只會詳細說明要使用的命令。

  • 您可以使用它dig來仔細檢查名稱解析;使用其預設的本地解析器查看客戶端是否獲得正確的 IP 地址
  • 接下來的 3 個點都可以使用tcptraceroute; 最重要的是不要使用預設值traceroute(或者更糟糕的是經常建議的ping),因為它不會真正模擬您需要的正確 TCP/80 或 TCP/443 流量;這可能需要一些時間,但您應該使用在前一點上找到的 IP 地址到達最後一行,並提及類似於[open]這意味著您確實看到(並且可以訪問)在那裡執行的網站,因此沒有防火牆阻礙交換。
  • 您可以使用各種工具模擬完整的 HTTP(s) 交換,wget包括curlhttpie.
  • 專門用於調試您可以使用的 TLS 問題openssl s_clientgnutls或者testssl.sh

更新:我現在已經用 Tor 載入了一次網站。不知道那告訴我什麼。

伺服器和客戶端之間可能有防火牆。因此,如果您更改源 IP 地址(這是使用 Tor 的副作用之一),訪問模式就會發生變化。

引用自:https://serverfault.com/questions/1090906