Не разрешаются имена (DNS)
Машина видит адреса, но не видит имена: как проверить резолвер, починить resolv.conf и не потерять настройку после перезагрузки.
Обновлено 23 августа 2026 г.
Признак у этой поломки узнаваемый: ping 1.1.1.1 идёт, ping millida.net отвечает «Temporary failure in name resolution», apt update висит и падает по таймауту. Сеть при этом исправна — сломано только превращение имён в адреса.
Шаг 1. Убедиться, что дело в именах
ping -c3 1.1.1.1
getent hosts millida.net
dig +short millida.net @1.1.1.1
Если dig с явным сервером отвечает, а getent — нет, значит система не знает, к какому резолверу обращаться. Это настройка, а не связь.
Шаг 2. Посмотреть, кто отвечает за резолвинг
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
Возможны три расклада:
- файл пуст или в нём нет ни одной строки
nameserver— резолвер не задан; - в файле стоит
nameserver 127.0.0.53, ноsystemd-resolvedне запущен — обращения уходят в никуда; - прописан чужой сервер, который недоступен с нашей сети.
Шаг 3. Починить
Быстрое восстановление, чтобы вернуть себе apt и curl:
echo 'nameserver 1.1.1.1' > /etc/resolv.conf
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
Работает сразу, но живёт до перезагрузки или до следующей перенастройки сети. Постоянный вариант зависит от системы.
Debian и Ubuntu с systemd-resolved:
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
resolvectl dns ens18 1.1.1.1 8.8.8.8
AlmaLinux и CentOS Stream:
nmcli con mod "System ens18" ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up "System ens18"
Не редактируйте
/etc/resolv.confвручную, если он символическая ссылка в/run. Такой файл перезаписывается службой, и правка исчезнет при первой же перезагрузке — вы получите ту же поломку через неделю и не вспомните почему.
Шаг 4. Частные случаи
Резолвер работает, но конкретное имя не находится. Проверьте, что запись вообще опубликована:
dig millida.net A @1.1.1.1
dig millida.net A @8.8.8.8
Разные ответы от двух серверов означают, что зона недавно менялась и где-то ещё живёт старый кеш. Подождите время жизни записи (TTL) из ответа dig.
Обратная запись адреса машины (PTR) к этой проблеме отношения не имеет: она нужна почтовым серверам, задаётся во вкладке «Доступ» и никак не влияет на то, как машина сама разрешает имена.
Ещё одна частая находка — /etc/hosts с устаревшей строкой, оставшейся после переезда. Система смотрит туда раньше, чем в DNS, и упорно ходит на старый адрес:
cat /etc/hosts
Уберите лишние строки, оставьте 127.0.0.1 localhost и строку с именем самой машины.
Если имена не разрешаются вообще ни с какого сервера
Тогда проблема шире: проверьте базовую связность по статье Пропала сеть на машине и убедитесь, что исходящий 53-й порт не закрыт вашим же фильтром пакетов.