Iis

Cloudflare 不適用於 Windows 防火牆

  • December 3, 2016

對我的伺服器的許多 HTTP 請求都以524 (Origin time-out). 無法傳遞的資源並不總是相同的。有時他們會工作,而下一個請求他們不會。

我將 Cloudflare IP列入白名單。不幸的是,這無濟於事,因為實際訪問我伺服器的源 IP 來自法國 Cloudflare 伺服器,其 IP (172.68.51.*) 不在 Cloudflare 官方 IP 列表中。所以我臨時添加了一個防火牆規則,允許一切(所有 IP、所有埠、所有協議等)。我也沒有任何Block規則(可能會覆蓋允許一切規則)。

更奇怪的是,Windows 防火牆不會記錄任何對超時資源的阻塞請求。此外,IIS 不會記錄對這些資源的任何請求,因此問題必須在涉及 IIS 之前的一段時間。

如果我完全禁用 Windows 防火牆,一切都會按預期工作(所有資源都成功傳遞/沒有超時)。如果我再次通過另一個域(未映射到 Cloudflare 的域)發出請求,一切正常。

問題的原因可能是什麼?

對於測試,我使用了 Cloudflare 的開發模式(沒有記憶體但仍然代理),因為顯然 Cloudflare 已經記憶體的資源沒有問題。

**更新:**即使繞過所有規則(將“入站連接”從“阻止(預設)”更改為“允許”)它也不起作用,因此它不可能是規則問題。問題必須位於禁用防火牆(有效)和啟用防火牆但允許所有入站和出站連接(不起作用)之間。

Wireshark 在防火牆打開時顯示 TCP 重新傳輸錯誤。禁用防火牆時,它們不會發生:

在此處輸入圖像描述

問題確實是 Windows 防火牆,儘管我將所有內容都列入了白名單並且沒有記錄任何被阻止的數據包。有一種奇怪的防火牆隱身模式,它在丟棄數據包時不會記錄任何內容。

我為我的活動防火牆配置文件禁用了它,即使刪除了我的 allow-everything 規則(我將 Cloudflare IPs 列入白名單),超時也消失了。

此外,還需要重新啟動伺服器,以便 Windows 防火牆接收系統資料庫更改。

**更新:**我製作了這個批處理腳本來禁用隱身模式:

REG ADD HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsFirewall\DomainProfile /v DisableStealthMode /t REG_DWORD /d 1
REG ADD HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsFirewall\PrivateProfile /v DisableStealthMode /t REG_DWORD /d 1
REG ADD HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsFirewall\PublicProfile /v DisableStealthMode /t REG_DWORD /d 1
REG ADD HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsFirewall\StandardProfile /v DisableStealthMode /t REG_DWORD /d 1
PAUSE

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