ERR_CONNECTION_TIMED_OUT: что означает ошибка и как её исправить
TIMED_OUT — ошибка тишины: браузер нашёл адрес сайта, отправил запрос на соединение — и не получил в ответ ничего. Ни отказа, ни ошибки, просто молчание до истечения таймаута. Это худший из трёх сетевых сценариев для диагностики, потому что тишина не сообщает причину. Разбираем, как её всё-таки найти — по обе стороны провода.
Тишина против отказа: важная разница
Сравните с роднёй. При ERR_CONNECTION_REFUSED сервер мгновенно отвечает «нет» — значит, машина жива и сеть до неё работает, просто порт закрыт. При TIMED_OUT пакеты уходят в пустоту: либо они не доходят до сервера, либо ответы не доходят обратно. Технически это разница между REJECT и DROP в файрволах: первый вежливо отказывает, второй молча выбрасывает пакеты. Поэтому список подозреваемых у TIMED_OUT самый длинный: мёртвый сервер, обрыв маршрута, файрвол в режиме DROP, перегруженный канал — и, важная специфика, сетевые блокировки: фильтрация у операторов чаще всего выглядит именно как молчание, а не как отказ.
Если вы посетитель
| Шаг | Что выясняем |
|---|---|
| 1. Другие сайты работают? | Нет — проблема в вашем интернете (роутер, канал), сайт ни при чём |
| 2. Мобильный интернет вместо Wi-Fi | Открылось — маршрут или фильтрация у вашего провайдера |
| 3. VPN: выключить, а потом попробовать включить | VPN и меняет маршрут (лечит обрывы), и сам бывает источником таймаутов |
| 4. Файрвол и антивирус | Молчаливое отбрасывание пакетов — фирменный почерк перестраховавшихся защит |
| 5. Онлайн-чекер доступности | Сайт лежит для всех или только для вас — главный водораздел диагностики |
Если вы владелец: диагностика тишины
Начните с бинарного вопроса: сервер вообще жив? Панель хостинга/облака, консоль VDS — если машина выключена или зависла, дальше искать нечего. Жива — проверяйте слоями: пингуется ли адрес снаружи (помня, что ICMP может быть закрыт — тогда проверяйте TCP-портом), отвечает ли порт 443 из другой сети, и главное — откуда именно наблюдается тишина. Здесь TIMED_OUT принципиально отличается от серверных ошибок: он бывает избирательным по географии. Обрыв магистрали, авария у крупного оператора, фильтрация — всё это накрывает часть карты, а не весь мир. Где начинается молчание на пути пакетов, покажет трассировка с пострадавшей стороны: маршрут, обрывающийся звёздочками на одном и том же узле, — это и есть место аварии (или фильтра).
Отдельный серверный сценарий — файрвол в режиме DROP: правило написано «отбрасывать», а не «отклонять», и для заблокированных сеть выглядит мёртвой. Проверьте правила на предмет диапазонов, куда случайно попали легитимные посетители: симптоматика будет ровно как у истории с WAF, только без внятного кода ошибки в логах — пакеты до логов просто не доживают.
REFUSED прилетает мгновенно, TIMED_OUT — через десятки секунд ожидания. Посетитель всё это время смотрит на крутящийся индикатор — и уходит задолго до появления ошибки. Поэтому реальные потери от таймаутов всегда больше, чем показывает статистика ошибок: большинство жертв не дождались даже её.
Экзотика, о которой забывают: MTU и «полуоткрытые» соединения
Есть класс таймаутов-оборотней: соединение устанавливается, маленькие страницы открываются, а большие — виснут и отваливаются. Частый виновник — проблема с размером пакетов (MTU): где-то на пути (типично — VPN-туннель или PPPoE-подключение) большие пакеты молча теряются, а механизм согласования размера заблокирован перестраховавшимся файрволом. Симптоматика сводит с ума: «сайт наполовину работает». Если жалобы именно такие и совпадают с использованием VPN или специфического подключения — проверьте MTU на туннеле, прежде чем разбирать сервер. Второй оборотень — зависший, но не упавший сервер: TCP-соединение принимается операционной системой, а приложение уже не отвечает; снаружи это таймаут после успешного коннекта. Различить помогает пара «TCP-проверка порта отдельно + HTTP-проверка отдельно»: порт зелёный, HTTP красный — значит, машина жива, умерло приложение.
Почему таймауты требуют мониторинга по географии
Из всех ошибок серии TIMED_OUT — самая «региональная». Сервер может быть идеально жив и отвечать из Москвы за 40 мс, в то время как для Дальнего Востока маршрут оборван аварией на магистрали, а у абонентов одного оператора сайт «молчит» из-за фильтра. Ни один взгляд из одной точки — включая ваш собственный — этой картины не покажет. Единственный способ увидеть её целиком: регулярные проверки из многих городов и сетей с картой «где отвечает, где тишина». По этой карте различаются и три главных диагноза: всё красное — сервер/площадка; красное пятно по региону — магистраль или оператор; красные только отдельные сети — фильтрация или DROP-правила.
Пруфен проверяет сайт из 13 точек — 11 в России, Минск и Испания — сочетая HTTP-проверки и ping: по карте проверок сразу видно, молчит сайт для всех или только для части страны. Время обнаружения равно интервалу проверки — от 2 минут; уведомления приходят в Email, Telegram, Макс или звонком.
Частые вопросы
Чем TIMED_OUT отличается от 504 Gateway Timeout? Слоем. 504 — это полученный HTTP-ответ: соединение с сайтом работает, тормозит его бэкенд. TIMED_OUT — соединение не установилось вовсе: до HTTP дело не дошло. Первый чинится на сервере приложения, второй — на уровне сети и инфраструктуры.
Сайт открывается через VPN, без VPN — таймаут. Это блокировка? Похоже на неё либо на проблему маршрута у вашего оператора: VPN меняет путь пакетов и обходит проблемный участок. Сравните из нескольких сетей и проверьте домен в реестре блокировок.
Ошибка появляется только в часы пик. Почему? Перегрузка канала — вашего, провайдерского или серверного: очереди переполняются, и часть пакетов отбрасывается. Смотрите статистику потерь (mtr) в плохое и хорошее время — разница укажет на перегруженный участок.
Пинг до сервера идёт, а сайт по таймауту. Как так? ICMP и TCP-порт 443 — разные вещи: сеть до машины работает, а вот на пути к порту стоит DROP-файрвол, или веб-сервер завис так глубоко, что не отвечает даже на SYN. Проверьте порт напрямую: nc -zv домен 443.