Большинство из вышеперечисленных предполагает, что у вас нетронутая система, но реальность часто такова, что вы устанавливаете разные клиенты 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 OVERWRITTEN
nameserver 127.0.0.1
Неважно, как часто я запускаю sudo resolvconf -u или [ f8], он не обновил сервер имен тем, которые я установил в NetworkManager. Информация, которую resolvconf использует из NetworkManager:
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 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 OVERWRITTEN
nameserver 8.8.4.4
nameserver 8.8.8.8
Надеюсь, это поможет другим с отладкой (сложным взаимодействием между всеми этими различными сетевыми инструментами). Если вы используете resolvconf, обязательно запустите ls /run/resolvconf/interfaces, чтобы увидеть, что там.