Перейти к содержимому
VDS · Решение проблем

Не разрешаются имена (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-й порт не закрыт вашим же фильтром пакетов.