Случайные проблемы с HTTP-соединением

Случайные проблемы с HTTP-соединением

У меня странная проблема с доступом в Интернет, которую я не знаю, как устранить. Определенный набор сайтов не загружается со статусом «Сброс подключения» примерно в 90% случаев. Доступ к ним по их IP дает те же результаты. Пингование IP работает (без потери пакетов). Я использую Windows Server 2012 с последними установленными обновлениями.

Fiddler (HTTP MITM отладчик) сообщает мне, что ответ HTTP — «HTTP 504». Wireshark показывает, что я получаю пакеты «Connection Reset» на уровне TCP.

Я попробовал следующие изменения:

Проблема сохраняется, когда:

  • Доступ по IP
  • Использование wget
  • Использование другого сетевого адаптера (телефон с подключением по USB и поддержкой 3G)
  • Использование другого браузера
  • Использование браузера внутри виртуальной машины VirtualBox
  • Отключение брандмауэра
  • Загрузка в безопасном режиме с поддержкой сети.
  • Смена DNS-сервера.
  • Вход в систему как другой пользователь, не являющийся администратором.

Проблема исчезает, когда:

  • Использование другой машины
  • Использование ТОР
  • Использование другой ОС
  • Повторная отправка HTTP-запроса более пяти раз в Fiddler (т.е. первые 5 повторных отправок завершаются неудачей, а все последующие — успешно).
  • Перехват HTTP-запроса с помощью Fiddler и повторная отправка его на другой машине.

Моим последним средством будет переустановка ОС. Есть ли что-то еще, что я могу попробовать, чтобы отладить эту проблему?

решение1

Неудачные соединения были TCP-соединениями с веб-сайтами, поддерживающими CloudFlare. Windows Server 2012 по умолчанию включает явное уведомление о перегрузке — флаги ECN и CWR (Congestion Window Reduced) устанавливаются в TCP-пакетах.

Я решил проблему, запустив

netsh interface tcp set global ecncapability=disabled

решение2

Это немного маловероятно, но я видел, как эта процедура исправляла некоторые странные проблемы, которые я не мог решить иначе. Так что определенно стоит попробовать, прежде чем прибегать к полной переустановке.

Сбросьте стек TCP/IP на вашем компьютере с Windows, выполнив команду

netsh int ip reset c:\resetlog.txt(последний параметр для пути к журналу необязателен)

Для этого также есть автоматизированный инструмент, если вы перейдете по ссылке ниже.

Документация:http://support2.microsoft.com/kb/299357/en

Связанный контент