Linux ENETUNREACHВысокая

Ошибка 'Network is unreachable' в Linux: причины и быстрые решения

Статья поможет диагностировать и устранить ошибку 'Network is unreachable' в Linux. Вы узнаете, почему система не может достичь удалённого хоста, и получите проверенные способы восстановления сетевого подключения.

Обновлено 8 апреля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+CentOS 7+Fedora 35+

Что означает ошибка "Network is unreachable"

Ошибка Network is unreachable (код ENETUNREACH) возникает, когда ядро Linux не может найти маршрут к указанному IP-адресу или сети. Система сообщает, что сеть, к которой вы пытаетесь подключиться, недоступна с точки зрения таблицы маршрутизации.

Вы увидите это сообщение при выполнении команд, таких как:

ping 8.8.8.8
ping: connect: Network is unreachable

Или в traceroute:

traceroute 8.8.8.8
connect: Network is unreachable

Ошибка возникает до попытки отправить пакет — система даже не может определить, куда его направить.

Причины возникновения

  1. Отсутствует маршрут по умолчанию (шлюз). Самая частая причина. В таблице маршрутизации нет записи default via <шлюз> для выхода в интернет.
  2. Неверный шлюз (gateway). Шлюз указан, но его IP-адрес не belongs к локальной сети или интерфейс неактивен.
  3. Сетевой интерфейс не настроен. Интерфейс (eth0, wlan0) либо выключен, либо не получил IP-адрес (через DHCP или статически).
  4. Неправильная маска подсети. Настройки IP-адреса и маски не соответствуют реальной сети, поэтому шлюз считается недостижимым.
  5. Физические проблемы. Кабель не подключён, Wi-Fi отключён или роутер/коммутатор не работает.
  6. Ограничения firewall. Хотя обычно это вызывает No route to host, некоторые правила iptables/nftables могут блокировать отправку пакетов на уровне маршрутизации.

Способы решения

Способ 1: Проверка и восстановление интерфейса

Убедитесь, что ваш сетевой интерфейс активен и имеет IP-адрес.

  1. Просмотрите список интерфейсов:
    ip addr show
    

    Найдите основной интерфейс (например, eth0 или wlan0). Убедитесь, что он имеет состояние UP и назначен IP-адрес в формате inet xxx.xxx.xxx.xxx/....
  2. Если интерфейс DOWN, включите его:
    sudo ip link set dev eth0 up
    

    Замените eth0 на имя вашего интерфейса.
  3. Если IP-адрес отсутствует, запросите его у DHCP-сервера (если используется динамическая настройка):
    sudo dhclient -v eth0
    

    Или настройте статический IP вручную (см. Способ 3).

Способ 2: Диагностика и исправление таблицы маршрутизации

Проверьте, есть ли маршрут по умолчанию.

  1. Посмотрите текущие маршруты:
    ip route
    

    Ищите строку, начинающуюся с default via. Если её нет — это причина ошибки.
  2. Определите ваш шлюз. Часто это адрес вида 192.168.1.1, 10.0.0.1 или 172.16.0.1. Посмотрите настройки роутера или выполните:
    ip route | grep default
    

    Если команда ничего не вывела, шлюз не настроен.
  3. Временно добавьте маршрут по умолчанию (действует до перезагрузки):
    sudo ip route add default via 192.168.1.1 dev eth0
    

    Замените 192.168.1.1 на IP вашего шлюза, а eth0 — на интерфейс.
  4. Проверьте, появился ли маршрут:
    ip route show default
    

    И попробуйте пинг:
    ping -c 4 8.8.8.8
    

Способ 3: Настройка статического IP (если DHCP не работает)

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

  1. Определите свободный IP в вашей сети (например, 192.168.1.100), маску (/24 или 255.255.255.0) и шлюз (192.168.1.1).
  2. Настройте интерфейс через ip (временно):
    sudo ip addr add 192.168.1.100/24 dev eth0
    sudo ip route add default via 192.168.1.1
    
  3. Для постоянной настройки отредактируйте конфигурационный файл сети:
    • Ubuntu/Debian (Netplan): /etc/netplan/01-netcfg.yaml
      network:
        version: 2
        ethernets:
          eth0:
            addresses:
              - 192.168.1.100/24
            routes:
              - to: default
                via: 192.168.1.1
            nameservers:
              addresses: [8.8.8.8, 1.1.1.1]
      
      Примените: sudo netplan apply.
    • CentOS/RHEL/Fedora (NetworkManager): /etc/sysconfig/network-scripts/ifcfg-eth0
      BOOTPROTO=static
      IPADDR=192.168.1.100
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
      
      Перезапустите: sudo systemctl restart NetworkManager.

Способ 4: Проверка физического подключения и Wi-Fi

  1. Убедитесь, что кабель плотно вставлен в порт компьютера и роутер/коммутатор. Для Wi-Fi проверьте, что вы подключены к правильной сети и индикатор показывает соединение.
  2. Перезагрузите роутер/модем.
  3. Проверьте, видит ли система интерфейс:
    ip link
    
    Если интерфейс отсутствует, возможно, проблема с драйвером. Обновите систему или установите драйвер.

Способ 5: Анализ с помощью traceroute и tracepath

Уточните, на каком этапе теряется связь.

  1. Установите traceroute или tracepath (если нет):
    sudo apt install traceroute   # Debian/Ubuntu
    sudo yum install traceroute   # CentOS/RHEL
    
  2. Запустите:
    tracepath 8.8.8.8
    

    Если сразу выводит Network is unreachable — проблема локальная (нет маршрута). Если идёт несколько прыжков и падает — возможно, блокировка на промежуточном узле.

Профилактика

  • Регулярно обновляйте систему (sudo apt update && sudo apt upgrade), чтобы получать исправления для сетевых драйверов и утилит.
  • Не удаляйте маршрут по умолчанию вручную без понимания последствий. Проверяйте ip route после изменений.
  • Используйте статические IP только при необходимости. В домашних/офисных сетях предпочтитель DHCP.
  • Правильно настраивайте шлюз. Убедитесь, что IP шлюза находится в той же подсети, что и IP вашего интерфейса.
  • Резервное копирование конфигурационных файлов сети перед редактированием:
    sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
    
  • Мониторинг: Добавьте в cron задачу на проверку доступности шлюза и перезапуск службы при сбое.

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

В чём разница между 'Network is unreachable' и 'No route to host'?
Почему возникает ошибка, если Wi-Fi подключён?
Может ли это быть проблемой провайдера?
Как проверить, что проблема именно в маршрутизации?

Полезное

Проверьте состояние сетевых интерфейсов
Изучите таблицу маршрутизации
Временно добавьте маршрут по умолчанию
Проверьте настройки DNS
Перезапустите сетевую службу

Эта статья помогла вам решить проблему?