Linux ENOTFOUNDСредняя

Исправление ошибки DNS-разрешения (ENOTFOUND) в Linux

Статья объясняет причины ошибки DNS-разрешения (ENOTFOUND) в Linux и предлагает несколько проверенных способов восстановления работы сети.

Обновлено 6 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04 LTSDebian 12CentOS Stream 9Fedora 38

Что означает ошибка ENOTFOUND

Ошибка ENOTFOUND (или «DNS-разрешение не удалось») появляется, когда Linux не может преобразовать доменное имя в IP-адрес. Система пытается подключиться к ресурсу, но не находит его адреса, что приводит к отказу в подключении.

$ nslookup example.com
서버:  ​​192.168.1.1
Адрес: 192.168.1.1#53

Не удалось разрешить 'example.com'

Обычно это происходит при загрузке веб-страниц, запуске удалённых команд или работе с сетевыми утилитами. Ошибка не связана с доступностью сервера, а указывает на проблему с процессом разрешения DNS.

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

  • Неправильные DNS-серверы в /etc/resolv.conf (сервер недоступен или не работает).
  • Повреждённый файл /etc/resolv.conf (отсутствует строка nameserver или синтаксис неверный).
  • Сетевой интерфейс отключён или не имеет корректного IP-адреса.
  • Брандмауэр или SELinux блокируют исходящие DNS-запросы (порт 53 UDP/TCP).
  • Переполненный DNS-кэш (systemd-resolved, nscd), содержащий устаревшие записи.
  • Неправильная конфигурация сетевого менеджера (NetworkManager, systemd-networkd) в контейнерах или виртуальных машинах.
  • Файл /etc/hosts не содержит необходимых хост-энтрий.

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

Способ 1: Проверка DNS-конфигурации

  1. Проверить текущие DNS-серверы Откройте файл /etc/resolv.conf с помощью cat /etc/resolv.conf и убедитесь, что серверы корректны.
  2. Изменить DNS-серверы Отредактируйте /etc/resolv.conf (или настройки сетевого менеджера), добавив надёжные серверы, например, nameserver 8.8.8.8.
  3. Применить конфигурацию Перезапустите сетевые сервисы: sudo systemctl restart networking (Debian/Ubuntu) или sudo systemctl restart NetworkManager (Fedora/CentOS).
  4. Проверить устранение ошибки Выполните ping google.com, чтобы убедиться, что DNS-разрешение работает.

Способ 2: Сброс DNS-кэша

  1. Очистить DNS-кэш Выполните systemd-resolve --flush-caches, чтобы сбросить локальный кэш resolv.
  2. Перезапустить кэширующие сервисы Для систем с nscd используйте sudo systemctl restart nscd.
  3. Повторно проверить DNS Запустите dig google.com и убедитесь, что запросы не завершаются ошибкой.

Способ 3: Использование публичных DNS-серверов

  1. Добавить публичные DNS-серверы Редактируя /etc/resolv.conf, укажите популярные публичные серверы:
    nameserver 1.1.1.1
    nameserver 8.8.8.8
    
  2. Проверить доступность Используйте nslookup example.com — если запрос успешен, проблема решена.
  3. Синхронизировать с сетевым менеджером (если используется NetworkManager): sudo nmcli dev set <interface-name> ipv4.dns "1.1.1.1 8.8.8.8" и sudo nmcli dev reapply <interface-name>.

Способ 4: Проверка сетевого интерфейса и брандмауэра

  1. Убедиться, что интерфейс активен Выполните ip addr show и проверьте, что у интерфейса есть IP-адрес.
  2. Проверить брандмауэр (ufw, firewalld, iptables):
    • sudo ufw status verbose — разрешите исходящий DNS-трафик (allow out on <interface> to any port 53 proto udp).
    • sudo firewall-cmd --list-all — добавьте правила для порта 53.
  3. Проверить SELinux (если используется): semanage port -l | grep 53 — убедитесь, что DNS-порт разрешён.

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

  • Регулярно обновляйте DNS-серверы в /etc/resolv.conf или настройках сетевого менеджера.
  • Периодически очищайте кэш (systemd-resolve --flush-caches, nscd -f).
  • Следите за правилами брандмауэра, чтобы не блокировать DNS-запросы.
  • Ведите резервную копию /etc/resolv.conf — её можно быстро восстановить после изменений системы.
  • Используйте надёжные публичные DNS-серверы (Google DNS, Cloudflare) для повышения стабильности разрешений.

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

Почему в Linux появляется ошибка DNS-разрешения (ENOTFOUND)?
Как проверить текущие DNS-серверы в системе?
Как быстро сбросить DNS-кэш в современных дистрибутивах Linux?
Какие публичные DNS-серверы можно использовать в качестве альтернативы?

Полезное

Проверить текущие DNS-серверы
Изменить DNS-серверы
Применить конфигурацию
Проверить устранение ошибки
Очистить DNS-кэш
Дополнительные проверки

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