DNS в Linux Linux Temporary failure in name resolution

Linux: «Temporary failure in name resolution» — не работает DNS

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Сообщение значит, что система не может превратить имя в IP-адрес: нет интернета, не работает DNS-сервер, неправильный /etc/resolv.conf или остановлена служба systemd-resolved. Проверьте, доступен ли интернет по IP (ping 8.8.8.8), затем исправьте DNS.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Если не помогло
  5. Как различить проблему сети и DNS
  6. Особенности современных дистрибутивов

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

Temporary failure in name resolution
ping: google.com: Temporary failure in name resolution
По-русскиВременный сбой при разрешении имени: система не может определить IP-адрес по имени.

«Temporary failure in name resolution» означает, что система не смогла превратить доменное имя в IP-адрес: DNS-сервер недоступен, не настроен или /etc/resolv.conf указывает на нерабочий адрес. Сеть при этом может работать: ping 8.8.8.8 отвечает, а ping google.com — нет.

Это одна из самых частых ошибок в контейнерах, виртуальных машинах и после смены сети или VPN.

Программы получают адрес через системный DNS-клиент (systemd-resolved, resolv.conf). Если серверов DNS нет или они недоступны, имена не разрешаются, а IP-адреса при этом доступны.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Нет подключения к интернетуСеть не работает вообще.ping 8.8.8.8 тоже не проходит.Исправьте сеть (кабель, Wi-Fi, шлюз).
DNS-сервер недоступенСерверы DNS не отвечают.ping 8.8.8.8 проходит, а ping ya.ru нет.Укажите другой DNS-сервер.
Неверный /etc/resolv.confФайл пуст или указывает на недоступный адрес.В файле нет строк nameserver или адрес неверный.Исправьте файл или настройте systemd-resolved.
Остановлена служба systemd-resolvedСлужба DNS не работает.systemctl status systemd-resolved — inactive.Запустите и включите службу.

#Пошаговое решение

  1. Проверьте сетьОткройте несколько разных сайтов или сервисов и проверьте, работает ли подключение на другом устройстве в той же сети. Для сравнения переключитесь между Wi-Fi и мобильным интернетом, если это возможно. Если ошибка только на одном устройстве, проверяйте его сетевые настройки; если на всех — роутер или провайдера.
  2. Проверьте DNSОткройте терминал Linux и выполните resolvectl status (если есть systemd-resolved), затем dig example.com A и dig @1.1.1.1 example.com A с тем же именем. Сравните строки status и ANSWER SECTION, а также список DNS-серверов. Если внешний DNS отвечает, но системный нет, исследуйте настройки локального разрешения имён; если оба дают NXDOMAIN, проверьте наличие домена. Не меняйте /etc/resolv.conf до выяснения, кто его формирует.
  3. Задайте DNSМенять DNS Linux следует только если getent hosts и resolvectl status (когда доступно) показывают проблему с системным разрешением имён, а сеть по IP работает. Если соединением управляет NetworkManager, сначала выполните nmcli connection show --active и запишите точное имя активного подключения. Сохраните текущие параметры (nmcli connection show "ИМЯ_ПОДКЛЮЧЕНИЯ") в заметку. Вводите реальные имя подключения и согласованные DNS только с правами администратора; изменение ipv4.dns само по себе не отключает DNS из DHCP, для этого отдельно требуется ipv4.ignore-auto-dns yes. После изменения подключение может кратко прерваться. В управляемой сети лучше обратиться к администратору.
  4. Перезапустите резолверНа Linux с systemd сначала выполните systemctl status systemd-resolved и resolvectl status в терминале. Если служба действительно установлена, но остановлена, и она используется этим дистрибутивом, администратор может выполнить sudo systemctl restart systemd-resolved; изменение конфигурации сети может временно нарушить разрешение имён. Затем выполните resolvectl query example.com. Не запускайте эту службу параллельно с другим DNS-менеджером без проверки конфликта.
  5. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Только чтение.
    Linux · Терминал (Bash)Команда
    Только чтение. Показывает, где обрывается цепочка: сеть или DNS.
    ping -c 3 8.8.8.8
    ping -c 3 ya.ru
    cat /etc/resolv.conf
    resolvectl status
    Вариант 2Включает и запускает службу DNS на системах, где она используется (Ubuntu, Debian 12 и др.).
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Включает и запускает службу DNS на системах, где она используется (Ubuntu, Debian 12 и др.).
    sudo systemctl enable --now systemd-resolved

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  6. Проверьте результатПосле одного изменения снова воспроизведите исходную ошибку на том же адресе, в той же сети и учётной записи; запишите точный результат. Затем сравните с альтернативным устройством или подключением, которое работало ранее. Если проблема исчезла, верните временно отключённые защитные функции и проверьте результат ещё раз; если нет, отмените последнее изменение и переходите к следующей проверке согласно обнаруженному признаку.

#Если не помогло

Если вы работаете в контейнере или на сервере с NetworkManager, DNS-серверы задаются там: проверьте nmcli device show. Не редактируйте resolv.conf вручную, если файл управляется системой — изменения будут перезаписаны.

#Как различить проблему сети и DNS

Выполните ping -c 3 8.8.8.8. Если ответы есть, интернет работает, и нужно чинить именно DNS. Если нет — проверьте ip a, маршрут по умолчанию ip route и подключение. Затем resolvectl status (systemd-resolved) покажет, какие DNS-серверы используются.

#Особенности современных дистрибутивов

В Ubuntu /etc/resolv.conf — ссылка на stub-резолвер systemd-resolved (127.0.0.53). Править файл вручную бессмысленно: настраивайте DNS через netplan, NetworkManager (nmcli) или resolved.conf. В Docker адреса DNS берутся с хоста; их можно задать в /etc/docker/daemon.json ключом "dns": ["1.1.1.1","8.8.8.8"].

Linux · Терминал (Bash)Команда
Диагностика сети и DNS.
ping -c 3 8.8.8.8
resolvectl status
getent hosts example.com

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.