Skip to content
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 не заблоковано вашим власним фільтром пакетів.