Перейти к основному содержимому

Руководства / Починка: руководства по ошибкам, которые встречаются на практике

ERR_ADDRESS_UNREACHABLE: что означает и как исправить

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

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

Прежде чем сможет начаться какое-либо TCP-рукопожатие, операционная система должна знать, как маршрутизировать пакет к IP-адресу назначения. ERR_ADDRESS_UNREACHABLE срабатывает, когда пригодного маршрута нет: в локальной таблице маршрутизации нет ничего подходящего, шлюз, который должен был бы переслать пакет, недоступен, либо сам адрес вообще не из тех, что достижимы из текущей сети. Это отличается от таймаута, где маршрут существует и пакет отправляется, но никто не отвечает; здесь операционная система отказывается даже отправлять пакет, потому что ей некуда его отправить.

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

Как проявляется ошибка

Chrome показывает "This site can't be reached ... ERR_ADDRESS_UNREACHABLE", часто быстрее, чем при таймауте, поскольку никакого ожидания не требуется - сбой мгновенный. Из командной строки то же самое условие видно четко:

curl -v https://192.168.1.50/
* Trying 192.168.1.50:443...
* connect to 192.168.1.50 port 443 failed: No route to host
curl: (7) Failed to connect to 192.168.1.50 port 443: No route to host

"No route to host" - это сообщение операционной системы, лежащее в основе ERR_ADDRESS_UNREACHABLE; ping дает такой же класс сбоя против адреса без валидного пути.

Что вызывает ERR_ADDRESS_UNREACHABLE

  • Адрес - это приватный или локальный IP, к которому обращаются извне этой сети. Адрес вроде 192.168.x.x или 10.x.x.x имеет смысл только внутри той локальной сети, которой он принадлежит; достучаться до него из публичного интернета никогда не получится.
  • Маршрутизатор или шлюз недоступен. Если устройство, отвечающее за пересылку трафика к пункту назначения, лежит, все, что за ним, становится недостижимым сразу.
  • Где-то настроен неверный IP-адрес. Устаревшая DNS-запись, жестко прописанный IP в файле hosts или опечатка во вручную введенном адресе - все это может указывать на что-то, что вообще никогда не было достижимо.
  • IPv6 включен без реального подключения по IPv6. Устройство или сеть, у которых назначен адрес IPv6, но нет рабочего пути в широкий интернет по IPv6, проваливаются именно так для любого пункта назначения, разрешаемого через AAAA.
  • Таблица маршрутизации VPN исключает пункт назначения. Некоторые настройки VPN маршрутизируют через туннель только определенные подсети, и адрес за пределами этого диапазона, либо требующий туннеля, но не проведенный через него, становится недостижим, пока подключение активно.

Как понять, кто виноват

В подавляющем большинстве случаев эта ошибка - проблема вашего собственного устройства или сети, а не сервера назначения, поскольку она означает, что ваша сторона так и не нашла путь для отправки запроса. Если адрес - это обычный публичный домен, а не приватный IP, проверьте тот же адрес из другой сети или с другого устройства. Если там соединение проходит, а на исходной сети нет, проблема маршрутизации локальна. HTTP-проверка, запущенная снаружи вашей собственной сети, - быстрее всего подтвердит, что сам пункт назначения достижим из широкого интернета.

Как исправить ERR_ADDRESS_UNREACHABLE

Если вы посетитель

  1. Проверьте, не является ли адрес приватным IP. Все, что начинается с 192.168., 10. или с 172.16. по 172.31., работает только изнутри той конкретной локальной сети; как правило, вы не сможете достучаться до него откуда-то еще без VPN в эту сеть.
  2. Перезапустите маршрутизатор, чтобы исключить зависшую или поврежденную локальную таблицу маршрутизации.
  3. Отключитесь от любого активного VPN и повторите попытку; VPN с неполной или неверно настроенной таблицей маршрутизации - частая причина именно этой ошибки.
  4. Временно отключите IPv6 в настройках сетевого адаптера, если у сайта есть и адрес IPv4, и адрес IPv6; это принудительно направляет соединение через IPv4 и исключает сломанный путь по IPv6.
  5. Проверьте сам адрес на предмет опечатки либо старой заметки, которая может содержать внутренний IP вместо публичного доменного имени.

Если вы администрируете сайт

  1. Проверьте записи DNS A и AAAA для домена и убедитесь, что они указывают на живой, публично достижимый IP-адрес, а не на приватный диапазон или списанный сервер.
  2. Убедитесь, что шлюз и маршрутизация у хостинг-провайдера в порядке, используя его статус-страницу или канал поддержки, если адрес верен, но по-прежнему недостижим из нескольких внешних сетей.
  3. Удалите или исправьте устаревшую запись IPv6 (AAAA), если подключение по IPv6 к серверу фактически не настроено сквозным образом; запись AAAA без работающего пути по IPv6 за ней отправляет клиентов, предпочитающих IPv6, в тупик.

Как предотвратить ERR_ADDRESS_UNREACHABLE

DNS-запись, которая незаметно начинает указывать на приватный или списанный адрес, редко вызывает тревогу на самом сервере, поскольку сервер вообще никогда не видит провалившийся запрос. Постоянный мониторинг HTTP и DNS по расписанию разрешает домен и подключается к нему из внешних контрольных точек, ловя проблему маршрутизации или записи до того, как она затронет реальных посетителей, и отправляет оповещения по email, SMS, голосовым звонком, через Slack, Telegram и другие каналы.

Похожие ошибки

  • ERR_CONNECTION_TIMED_OUT означает, что маршрут существует и пакет был отправлен, но никто не ответил.
  • ERR_NAME_NOT_RESOLVED означает, что сам DNS провалился еще до того, как могла начаться какая-либо попытка соединения.
  • This site can't be reached охватывает весь набор ошибок соединения, которые Chrome группирует под одним заголовком.

Часто задаваемые вопросы

Означает ли ERR_ADDRESS_UNREACHABLE то же самое, что сайт лежит?

Обычно нет. Чаще всего это указывает на проблему маршрутизации в вашей собственной сети или устройстве, особенно когда адрес - приватный IP или задействован IPv6, а не на то, что сервер назначения находится офлайн.

Почему я вижу эту ошибку только в определенных сетях Wi-Fi?

У разных сетей разные таблицы маршрутизации и настройки VPN. Маршрут, работающий в вашей домашней сети, может не существовать в корпоративной или публичной сети, особенно для внутренних адресов.

Может ли файрвол вызвать ERR_ADDRESS_UNREACHABLE?

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

В чем разница между этой ошибкой и ERR_CONNECTION_TIMED_OUT?

ERR_ADDRESS_UNREACHABLE означает, что маршрута до пункта назначения вообще не существует, поэтому ничего не отправляется. ERR_CONNECTION_TIMED_OUT означает, что маршрут существует, пакет был отправлен, и ожидание просто истекло без ответа.

Случается ли это с обычными публичными сайтами?

Может, чаще всего из-за сломанного пути по IPv6 или DNS-записи, разрешающейся в адрес без валидного маршрута, но гораздо чаще это случается, когда адрес - приватный или внутренний IP, к которому обращаются не из той сети.

Как проверить, является ли адрес приватным?

Посмотрите на первую часть IP-адреса: диапазоны от 10.0.0.0 до 10.255.255.255, от 172.16.0.0 до 172.31.255.255 и от 192.168.0.0 до 192.168.255.255 все зарезервированы под приватные сети и никогда не достижимы из публичного интернета, как бы ни была настроена маршрутизация.

Проверить сейчас

Запустите бесплатную проверку своего сайта - аккаунт не нужен.

HTTP check

Следить за этим постоянно

Получайте оповещение в момент сбоя: HostTracker проверяет более чем из 300 локаций и уведомляет по email, SMS, в Slack, Telegram и не только.

Возможности HostTracker

Ещё в этом разделе: Починка: руководства по ошибкам, которые встречаются на практике