Імена не розв'язуються (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 не заблоковано вашим власним фільтром пакетів.