Большинство из вышеперечисленного предполагает, что у вас нетронутая система, но реальность часто такова, что вы устанавливали разные dhcp-клиенты, отключали сетевой менеджер в определенной предыдущей версии Ubuntu и т.д. Возможно, было бы полезно знать следующее. Я уже некоторое время использую dnsmasq, но деинсталлировал его. В настоящее время моя система содержала следующее содержимое /etc/resolv.conf
(который является символической ссылкой на /run/resolvconf/resolv.conf
в моей системе):
cat /etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 127.0.0.1
Не имеет значения, как часто я бегаю sudo resolvconf -u
или sudo dpkg-reconfigure resolvconf
, он не обновил сервер имен до тех, которые я установил в NetworkManager. Информация, которую resolvconf использует из NetworkManager, присутствовала:
cat /run/resolvconf/interface/NetworkManager nameserver 8.8.4.4nameserver 8.8.8.8
Однако оказывается, что если в этом каталоге есть несколько файлов, этот файл может вообще не использоваться. Виновником был файл, который не был удален при деинсталляции dnsmasq:
cat /run/resolvconf/interface/lo.dnsmasq nameserver 127.0.0.1
Просто удалив этот файл (и запустив sudo resolvconf -u
впоследствии) решил мои проблемы с dns:
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 8.8.4.4nameserver 8.8.8.8
Я надеюсь, что это также поможет другим в отладке (сложное взаимодействие между всеми этими различными сетевыми инструментами). Если вы используете resolvconf
убедитесь в том, чтобы запустить ls /run/resolvconf/interfaces
чтобы посмотреть, что там есть.