SystemdDoctor
служба не работает сеть маршруты

No route to host в журнале службы

Сообщение No route to host (номер 113, EHOSTUNREACH) означает, что ядро не знает, куда отправить пакет, либо получило явный отказ от сети. В отличие от таймаута ответ приходит сразу.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Нет маршрута до сети назначения

    Отсутствует шлюз по умолчанию или маршрут в нужную подсеть. Частая ситуация после правки сетевых настроек.

  2. Брандмауэр отвечает отказом

    Правило с действием reject и типом «узел недостижим» даёт именно эту ошибку.

  3. Узел в другой сети без связи

    Адрес не принадлежит доступным подсетям: ошибка в настройке или узел действительно недостижим.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Есть ли маршрут и через какой интерфейс пойдёт пакет.

ip route get адрес

Таблица маршрутов целиком: видно отсутствие шлюза.

ip route

Подтверждение и адрес назначения.

journalctl -u myapp.service -n 30 --no-pager | grep -i "no route"

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Нет маршрута до сети назначения
Почему происходит
Отсутствует шлюз по умолчанию или маршрут в нужную подсеть. Частая ситуация после правки сетевых настроек.
Как проверить
Посмотрите таблицу маршрутов и маршрут до адреса.
ip route
ip route get адрес
Как исправить
Добавьте нужный маршрут или шлюз по умолчанию в настройках сети — не командой, а в конфигурации, иначе он исчезнет после перезагрузки.
2. Брандмауэр отвечает отказом
Почему происходит
Правило с действием reject и типом «узел недостижим» даёт именно эту ошибку.
Как проверить
Посмотрите правила.
sudo nft list ruleset 2>/dev/null | grep -i reject | head
sudo iptables -L -n | grep -i reject | head
Как исправить
Исправьте правило или разрешите нужное направление.
3. Узел в другой сети без связи
Почему происходит
Адрес не принадлежит доступным подсетям: ошибка в настройке или узел действительно недостижим.
Как проверить
Сравните адрес узла с адресами и подсетями машины.
ip -brief addr
ip route get адрес
Как исправить
Проверьте правильность адреса и наличие связи между сетями.

Пример вывода

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

myapp[3200]: error: dial tcp <адрес>:443: connect: no route to host

$ ip route
<адрес>/24 dev eth0 proto kernel scope link src <адрес>

Связанные ошибки

Источники

  • connect(2): ошибка EHOSTUNREACH документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено удалением шлюза по умолчанию на тестовой машине.
    собственная проверка, systemd 255
    сверено 15 сентября 2026