Чего не касается ни один из опубликованных до сих пор ответов, так это видимости того, что спрашивающий не понимает, что, имея 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/
. Смотрите мои комментарии к этим ответам.