我遇到了一個奇怪的互聯網訪問問題,我不知道如何調試。大約 90% 的情況下,一組特定網站將無法載入並顯示「連線重設」狀態。透過 IP 存取它們會產生相同的結果。 ping IP 有效(無資料包遺失)。我正在執行安裝了最新更新的 Windows Server 2012。
Fiddler(HTTP MITM 偵錯器)告訴我 HTTP 回應是「HTTP 504」。 Wireshark 顯示我在 TCP 層級接收「連線重設」封包。
我嘗試過以下更改:
出現以下情況時問題仍然存在:
- 透過IP存取
- 使用 wget
- 使用不同的網路介面卡(具有 3G 功能的 USB 系留電話)
- 使用不同的瀏覽器
- 在 VirtualBox VM 中使用瀏覽器
- 停用防火牆
- 啟動進入安全模式聯網。
- 更改 DNS 伺服器。
- 以不同的非管理員使用者身分登入。
出現以下情況時問題就會消失:
- 使用不同的機器
- 使用任務範圍
- 使用不同的作業系統
- 在 Fiddler 中重新發出 HTTP 請求超過五次(即前 5 次重新發出失敗,之後的重新發出失敗)。
- 使用 Fiddler 捕獲 HTTP 請求並在另一台電腦上重新發出它。
我最後的手段是重新安裝作業系統。還有什麼我可以嘗試調試這個問題嗎?
答案1
失敗的連線是與啟用 CloudFlare 的網站的 TCP 連線。 Windows Server 2012 預設啟用明確擁塞通知 - ECN 和 CWR(擁塞視窗減少)標誌在 TCP 封包中設定為 true。
我透過運行解決了問題
netsh interface tcp set global ecncapability=disabled
答案2
這有點不太可能,但我已經看到這個過程解決了一些奇怪的問題,否則我無法解決這些問題。因此,在完全重新安裝之前,絕對值得一試。
透過執行下列命令重設 Windows 電腦上的 TCP/IP 堆疊
netsh int ip reset c:\resetlog.txt
(日誌路徑的最後一個參數是可選的)
如果您點擊下面的鏈接,還有一個自動化工具。