ERR_CONNECTION_RESET: кто сбрасывает соединение и как это проверить

Что означает принудительный сброс соединения, как отличить его от refused и timeout и где искать причину — от сети клиента до CDN и origin-сервера.

Ошибка ERR_CONNECTION_RESET означает, что установленное соединение было принудительно сброшено до того, как браузер получил полный ответ. Это не готовый диагноз: разрыв мог инициировать веб-сервер, reverse proxy, CDN, firewall, провайдер или устройство в сети посетителя. Ниже — последовательность, которая помогает локализовать проблему и собрать факты для администратора или хостинга.

Что означает ERR_CONNECTION_RESET

Когда браузер открывает страницу, он последовательно обращается к DNS, устанавливает TCP-соединение, при HTTPS согласует TLS и отправляет HTTP-запрос. При ERR_CONNECTION_RESET соединение уже существовало, но одна из сторон или промежуточное сетевое устройство резко его завершило.

По одному сообщению браузера нельзя уверенно сказать, кто именно отправил сброс. Важно зафиксировать, на каком URL возникает ошибка, повторяется ли она в другой сети, затрагивает ли только HTTPS и видит ли запрос сервер.

Чем reset отличается от refused и timeout

Эти ошибки похожи для пользователя, но указывают на разные сетевые ситуации:

  • ERR_CONNECTION_REFUSED — подключение отклонено сразу. Частая причина: на нужном порту нет процесса, который принимает соединения, либо доступ запрещен правилом firewall.
  • ERR_CONNECTION_TIMED_OUT — ответ не пришел за допустимое время. Пакеты могли теряться, маршрут мог быть недоступен, а сервер — перегружен.
  • ERR_CONNECTION_RESET — соединение установилось или начало устанавливаться, а затем было принудительно разорвано.

Различие важно для диагностики. Перезапускать все сервисы подряд не стоит: сначала нужно понять, где обрывается конкретный запрос.

Что может проверить посетитель сайта

Если ошибка появилась у одного человека, сначала полезно исключить локальную причину.

  1. Обновите страницу и проверьте другой раздел того же сайта. Единичный сброс может быть кратковременным.
  2. Откройте сайт в другом браузере или приватном окне. Это помогает исключить влияние расширений и поврежденного состояния сессии.
  3. Временно отключите VPN или proxy, если они используются. Затем, наоборот, сравните результат через другую сеть — например, мобильную.
  4. Проверьте, открываются ли другие HTTPS-сайты. Если сбои массовые, причина может быть в локальной сети, защитном ПО или провайдере.
  5. Не отключайте антивирус и проверку сертификатов навсегда. Такой эксперимент допустим только как контролируемая временная проверка, если вы понимаете риск.

Если сайт стабильно не открывается из разных браузеров и сетей, владельцу нужны результаты внешней проверки и серверные логи.

Что проверить владельцу сайта

Сначала подтвердите масштаб сбоя

Проверьте точный URL через внешнюю диагностику, а не только с рабочего компьютера. Сравните главную страницу, проблемный раздел и простой статический файл. Если статический файл открывается, а динамическая страница сбрасывает соединение, круг причин сужается до приложения, upstream-сервиса или правил обработки конкретного маршрута.

Запишите:

  • точное время и часовой пояс;
  • URL и метод запроса;
  • сеть или регион, где воспроизводится ошибка;
  • работает ли HTTP и HTTPS;
  • происходит ли сброс всегда или только иногда;
  • какой IP вернул DNS;
  • был ли перед origin-сервером CDN или reverse proxy.

Без этих данных легко сопоставить браузерную ошибку не с той записью в журнале.

Проверьте ответ командой curl

Команда показывает этап соединения, заголовки и редиректы:

curl -vI https://example.ru/

Для страницы, которая не поддерживает запрос HEAD корректно, используйте обычный GET без сохранения тела:

curl -v -o /dev/null https://example.ru/

Сообщение curl о сбросе подтверждает сетевой обрыв, но само по себе не называет виновника. Повторите запрос с машины вне инфраструктуры сайта и с сервера. Если локальный запрос к origin проходит, а внешний через CDN сбрасывается, проверяйте участок между CDN и origin, настройки TLS и правила фильтрации.

Сравните IPv4 и IPv6

Домен может вести на разные адреса. Когда AAAA-запись существует, часть клиентов использует IPv6, даже если владелец обычно проверяет сайт по IPv4.

curl -4 -vI https://example.ru/
curl -6 -vI https://example.ru/

Разный результат не доказывает ошибку DNS автоматически. Нужно проверить, обслуживает ли веб-сервер оба адреса, одинаково ли настроены firewall и маршрутизация, и действительно ли записи относятся к текущей инфраструктуре.

Отделите CDN и reverse proxy от origin

Если сайт работает через CDN, временно сравните запрос через публичный адрес и запрос к origin только безопасным способом, не раскрывая origin посторонним. Учитывайте имя хоста: виртуальный сервер может вернуть другой сайт или закрыть соединение, если запрос пришел без правильного Host и SNI.

Проверьте в панели CDN и на proxy:

  • виден ли входящий запрос;
  • установлен ли сеанс с origin;
  • нет ли блокировки IP, ASN, страны или сигнатуры WAF;
  • совпадают ли настройки TLS между клиентом, CDN и origin;
  • не превышены ли лимиты заголовков или тела запроса;
  • не закрывает ли proxy долгий ответ upstream раньше приложения.

Если сбой возникает только на одном URL, изучите правила маршрутизации, кеширования и WAF для этого пути.

Где чаще всего происходит сброс

Веб-сервер или приложение

Процесс может аварийно завершиться, worker — быть остановлен, а приложение — закрыть сокет до формирования HTTP-ответа. Сопоставьте время ошибки с журналами веб-сервера, приложения и менеджера процессов. Отсутствие HTTP-кода в access log может означать, что запрос оборвался раньше, но нужно также проверить журналы proxy и firewall.

Обратите внимание на повторяемость: конкретный файл, большой запрос, авторизованная сессия или обращение к внешнему API могут запускать отдельный проблемный сценарий.

Reverse proxy, балансировщик или CDN

Промежуточный узел может сбросить соединение при недоступном upstream, несовместимых параметрах TLS, нарушении протокола или срабатывании лимита. Сравните журналы на соседних уровнях. Если CDN зарегистрировал запрос, а origin его не видел, проблема находится между ними или на входном фильтре origin.

Firewall, WAF и защита от атак

Защитное правило иногда не возвращает страницу с кодом 403, а разрывает соединение. Проверьте события блокировок по времени, IP и URL. Не отключайте защиту целиком: безопаснее временно создать узкое тестовое исключение для известного адреса и затем удалить его.

Ложное срабатывание возможно на определенный User-Agent, cookie, параметр запроса или размер заголовков. Поэтому сравнение одного запроса из браузера с простым curl полезно, но не заменяет проверку того же набора заголовков.

Сеть провайдера или клиента

Если сервер не видит проблемных запросов, а сбой воспроизводится только у части операторов, сохраните результаты DNS, трассировки и время попыток из нескольких сетей. Не спешите менять DNS или IP без подтверждения: изменение конфигурации может скрыть исходную картину и добавить новый фактор.

Практические сценарии диагностики

Сайт сбрасывает соединение только после входа

Публичная страница открывается, а личный кабинет — нет. Проверьте запрос авторизации, размер cookie, правила WAF, upstream приложения и логи конкретного маршрута. Очистка cookie у пользователя может временно помочь, но владельцу все равно нужно найти серверную причину, если ошибка повторяется.

Ошибка появляется только у мобильных пользователей

Сравните IPv4 и IPv6, DNS-ответы мобильного оператора, CDN-маршрут и правила фильтрации. Проверьте тот же URL через мобильную сеть с выключенным Wi‑Fi. Одного сообщения «через Wi‑Fi работает» недостаточно, чтобы объявить блокировку оператором.

Сброс возникает на больших страницах или загрузках

Сравните маленький статический файл и проблемный ответ. Изучите ограничения proxy, тайм-ауты upstream, журналы приложения и использование ресурсов. Не увеличивайте все лимиты без разбора: это может отложить ошибку, но не устранить утечку памяти, зависание обработчика или некорректный ответ.

Как уменьшить время поиска причины

Полезная схема выглядит так:

  1. воспроизвести ошибку на точном URL;
  2. сравнить несколько сетей и IPv4/IPv6;
  3. определить, видит ли запрос CDN, proxy и origin;
  4. сопоставить отметки времени в журналах;
  5. изменить только одну настройку;
  6. повторить тот же тест и сохранить результат.

Разовая успешная проверка не гарантирует, что сбой исчез. Если соединение сбрасывается периодически, регулярный внешний мониторинг помогает увидеть время и повторяемость эпизодов. Web-Puls можно использовать для проверки доступности сайта и более быстрого обнаружения повторного сбоя, не полагаясь только на сообщения посетителей.

Когда обращаться к хостингу или администратору

Передайте специалисту URL, время ошибки, результаты из разных сетей, вывод curl без секретных cookie и подтверждение того, видит ли запрос сервер. Не публикуйте токены, содержимое авторизованных запросов и внутренние IP в открытой переписке.

Если проблему нужно не только зафиксировать, но и технически разобрать, можно отправить заявку на профессиональную поддержку или воспользоваться контактной информацией. Чем точнее собраны факты, тем быстрее специалист отличит сбой приложения от проблемы proxy, firewall, CDN или маршрута.

Вывод

ERR_CONNECTION_RESET сообщает о принудительном разрыве соединения, а не о конкретной неисправности. Начните с проверки точного URL извне, сравните сети и протоколы, затем проследите запрос через CDN, proxy и origin по журналам. Последовательная диагностика сохраняет исходные факты и помогает исправить причину, а не просто временно скрыть симптом.

Проверьте свой сайт прямо сейчас

Введите адрес сайта: Web-Puls покажет HTTP-код, время ответа и базовую диагностику. Для постоянного контроля можно подключить мониторинг.

Нужна помощь с диагностикой ошибки?

Опишите симптомы в короткой заявке: URL, код ответа, время появления и что менялось перед сбоем. Специалист поддержки оценит задачу и предложит формат работ.