#Что означает проблема и кому подходит инструкция
Если после apt upgrade программы перестали открывать сайты по имени, сначала различите отсутствие доступа в Интернет и сбой именно DNS. Ubuntu может использовать systemd-resolved, NetworkManager, Netplan, VPN или локальный DNS; нельзя заменять /etc/resolv.conf одним универсальным адресом.
#Возможные причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| DNS-сервер недоступенМаршрут до Интернета работает, но имена не преобразуются в адреса. | Проверка IP проходит, resolvectl query возвращает ошибку. | Проверить DNS конкретного сетевого соединения и маршрутизацию. |
| systemd-resolved отключён либо неверная ссылка/etc/resolv.conf может ссылаться на локальный stub, который не слушает. | 127.0.0.53 в resolv.conf, но resolved не активен. | Выяснить, кто управляет DNS и вернуть корректное состояние. |
| VPN и разделение DNSКорпоративные домены доступны только через DNS VPN. | Ошибка возникает лишь для внутренних доменов либо только с VPN. | Проверить DNS и маршруты для нужного интерфейса. |
#Диагностика и пошаговое устранение
- 1. Проверьте, что проблема действительно в именахОткройте Терминал Ubuntu (Ctrl+Alt+T), отключите временно только собственный браузерный прокси, если он известен, и выполните две проверки. Если
pingпо IP не работает, нельзя сводить проблему только к DNS — посмотрите подключение Wi-Fi/кабеля иip route. Корпоративный межсетевой экран может блокировать ping, поэтому проверка не абсолютная. - Команды ничего не меняютLinux · Терминал (Bash)КомандаКоманды ничего не меняют. Если адрес example.com появился, системное преобразование имён работает.
ip -br addrip routegetent ahostsv4 example.com
- 2. Узнайте фактический DNS и управляющую программуВведите
resolvectl statusи посмотрите DNS Servers / Current DNS Server для активного интерфейса, например enp3s0 или wlp2s0. Проверьте, куда ссылается/etc/resolv.conf, и активностьsystemd-resolved. При отсутствии resolvectl не устанавливайте её наугад: Ubuntu может использовать другой резолвер.Linux · Терминал (Bash)КомандаОбычно ссылка ведёт в /run/systemd/resolve/, но конфигурации различаются.resolvectl statusls -l /etc/resolv.confsystemctl is-active systemd-resolved
- 3. Проверьте конкретное имя и журнал ошибокЗапустите
resolvectl query example.com. При успешном ответе вывод содержит IP и сведения о соединении. При ошибкеSERVFAILили timeout проверьте сообщения после обновления; ошибкаNXDOMAINдля известного рабочего домена может означать ответ неподходящего DNS. Не публикуйте внутренние доменные имена, если журнал конфиденциальный.Linux · Терминал (Bash)КомандаЕсли journalctl требует разрешения, выполните его через sudo отдельно.resolvectl query example.comjournalctl -u systemd-resolved -b --no-pager -n 70
- 4. Если служба остановлена, проверьте причину до запускаПри
inactive/failedдляsystemd-resolvedпосмотрите журнал. Если это штатный резолвер вашей системы, выполните контролируемый запуск. После него вновь попробуйтеgetent ahosts. Команда restart может временно разорвать DNS текущих соединений; выполняйте с локальной консоли либо запасным доступом, если это удалённый сервер. - Только если Ubuntu действительно настроена использовать systemd-resolvedLinux · Терминал (Bash)С осторожностьюНужен sudoТолько если Ubuntu действительно настроена использовать systemd-resolved.
sudo systemctl start systemd-resolvedsystemctl status systemd-resolved --no-pagergetent ahostsv4 example.comКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 5. Поправьте DNS через систему управления подключениемНа Ubuntu Desktop откройте «Настройки» → «Сеть» (для кабеля) или «Wi-Fi» → параметры активного подключения. В разделе IPv4 проверьте «Автоматически» для DNS или укажите только адреса DNS, выданные вашим провайдером/администратором. Сохраните настройки и переподключитесь. На сервере с Netplan сначала прочитайте
/etc/netplan/*.yamlи документацию вашей конфигурации; не применяйте чужой пример, иначе потеряете SSH. VPN может устанавливать отдельные DNS и поисковые домены. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаКоманды показывают профили и DNS; изменение лучше делать локально или через консоль гипервизора.
nmcli connection show --activeresolvectl dns
- 6. Отличите временное исправление от постоянногоПри обнаружении устаревшей записи DNS можно очистить кэш
sudo resolvectl flush-caches; это не исправляет недоступный сервер. Затем проверьте несколько внешних и внутренних имён, откройте сайт и повторите тест после переподключения сети. Если результат зависит от VPN — запросите верные маршруты DNS у администратора.Linux · Терминал (Bash)КомандаНужен sudoАдминистратор для очистки кэша, без прав для повторной проверки.sudo resolvectl flush-cachesresolvectl query example.com
#Как убедиться, что неисправность устранена
DNS работает, если getent и браузер разрешают нужные имена после переподключения, а выбранный DNS соответствует сети. Не удаляйте /etc/resolv.conf и не вписывайте общедоступные DNS без согласования в корпоративной сети.
#Если результат не получен
Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.