Должен ли я отредактировать свой файл resolv.conf, чтобы устранить проблему с неправильным DNS?

Чего не касается ни один из опубликованных до сих пор ответов, так это видимости того, что спрашивающий не понимает, что, имея nameserver 127.0.0.1 в /etc/resolv.conf правильно, если предположить, что запущен локальный сервер имен. А в Ubuntu 12.04 Desktop по умолчанию запущен локальный сервер имен, а именно dnsmasq процесс, управляемый NetworkManager, который прослушивает 127.0.0.1. В Ubuntu 12.10 адрес прослушивания был изменен на 127.0.1.1.

Таким образом, решение состоит в том, чтобы не вносить никаких изменений в resolv.conf. Это правильно, если предположить, что спрашивающий хочет использовать локальный сервер имен.

Если служба имен не работает, значит, локальному серверу имен не присваиваются правильные адреса пересылки или существует какая-то другая сетевая проблема.

Спрашивающий попытался использовать "графический интерфейс сетевых настроек", чтобы "сгенерировать файл с правильными настройками", и это не сработало. Я не знаю точно, что это значит, но вот правильный способ ввести адреса серверов имен, чтобы они оказались в resolv.conf в нужное время. Я предполагаю, что спрашивающий использует NetworkManager и не ifup для настройки интерфейсов.

Чаще всего интерфейсы настраиваются с использованием протокола DHCP. В этом случае ничего не нужно настраивать в локальной системе. DHCP-сервер знает, какой адрес сервера имен должны использовать его клиенты, и отправляет эту информацию DHCP-клиенту, который отправляет ее в NetworkManager, который отправляет ее в resolvconf, который помещает информацию в resolv.conf. Таким образом, в данном случае может потребоваться настройка DHCP-сервера.

Если сетевой интерфейс на локальном компьютере настроен статически, то правильные адреса сервера имен должны быть введены в NetworkManager, например, в разделе Индикатор сети | Редактирование подключений... | Беспроводная связь | myconnection / Редактировать... | Настройки IPv4 | Дополнительные DNS-серверы.

Возможно, локальный сервер имен работает неправильно. В этом случае спрашивающий должен отредактировать /etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

и прокомментируйте строку

dns=dnsmasq

в разделе "[главная]". Чтобы закомментировать строку, поставьте # в начале строки, затем сохраните файл. Затем перезапустите network-manager.

sudo restart network-manager

После этого адреса нелокальных серверов имен будут введены в resolv.conf вместо адреса 127.*.

Если спрашивающий использует ifup вместо NetworkManager для настройки сетевых интерфейсов, то ответ jmartin2279 правильно: вы должны добавить адреса серверов имен в /etc/network/interfaces так, как описано в jmartin2279.

Вопреки тому, что советуют некоторые другие ответы, в целом вы должны нет добавлять nameserver, domain или search параметры для файлов в /etc/resolvconf/resolv.conf.d/. Смотрите мои комментарии к этим ответам.