Многие HTTP-запросы к моему серверу завершаются с ошибкой 524 (Origin time-out)
. Ресурсы, которые не могут быть доставлены, не всегда одинаковы. Иногда они работают, а при следующем запросе - нет.
Я добавил Cloudflare в белый список IP-адреса. К сожалению, это не может сильно помочь, потому что исходные IP-адреса, которые фактически попадают на мой сервер, взяты с французского сервера Cloudflare, чьи IP-адреса (172.68.51. *) Не находятся в официальном списке IP-адресов Cloudflare. Поэтому я временно добавил правило брандмауэра, которое разрешает все (все IP-адреса, все порты, все протоколы и т. Д.). Также у меня нет Block
правила (которые могут отменять правило разрешить все).
Что еще более странно, так это то, что брандмауэр Windows не регистрирует заблокированные запросы для ресурсов с истекшим временем ожидания. Кроме того, IIS не регистрирует запросы к этим ресурсам, поэтому проблема должна возникнуть за некоторое время до того, как IIS будет задействован.
Если я полностью отключу брандмауэр Windows, все будет работать должным образом (все ресурсы будут доставлены / без таймаутов). Если я выполняю запросы через другой домен (тот, который не сопоставлен с Cloudflare), снова все работает.
В чем может быть причина проблемы?
Для тестирования я использовал режим разработки Cloudflare (без кеширования, но по-прежнему проксирование), потому что, очевидно, нет проблем с ресурсами, которые уже кэшированы Cloudflare.
Обновить: Даже с обходом всех правил (изменение «Входящие соединения» с «Блокировать (по умолчанию)» на «Разрешить») это не работает, поэтому это не может быть проблемой правила. Проблема должна находиться где-то между отключением брандмауэра (работает) и включением брандмауэра, но разрешением всех входящих и исходящих соединений (не работает).
Wireshark показывает ошибки повторной передачи TCP, когда брандмауэр включен. При отключении межсетевого экрана они не возникают:
Проблема была действительно в брандмауэре Windows, хотя я внес все в белый список, и заблокированные пакеты не регистрировались. Есть странный скрытый режим брандмауэра, который ничего не регистрирует, когда отбрасывает пакеты.
я отключен это для моего активного профиля брандмауэра и тайм-аутов, которые пропали даже при удалении моего правила разрешить все (хотя я оставил IP-адреса Cloudflare в белом списке).
Также потребовался перезапуск сервера для того, чтобы брандмауэр 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