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

У меня проблема в том, что мой компьютер с Ubuntu использует неправильный DNS-сервер. По какой-то причине машина запрашивает localhost для информации DNS.

Я добавил DNS-сервер в GUI настроек сети, но /etc/resolv.conf все еще содержит 127.0.0.1 в качестве адреса DNS-сервера. Теперь я подумал, что могу просто отредактировать файл самостоятельно, но в нем прямо сказано, что я не должен редактировать файл вручную.

Теперь, поскольку графический интерфейс настройки сети не сгенерировал файл с правильными настройками, как мне создать новый resolv.conf подать сам?

4 ответа

Решение

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

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

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

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

sudo restart network-manager

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

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

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

Если вы используете ifup для статической настройки интерфейса, вы можете добавить его в файл /etc/network/interfaces.

Откройте терминал и введите:

sudo gedit /etc/network/interface*

Вы должны увидеть что-то вроде:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Изменить на:

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

используя вашу собственную информацию о сети. это позволит вам установить днс. Вы можете использовать несколько серверов DNS здесь:

dns-nameservers 8.8.8.8 8.8.4.4

После этого запустите

ifdown eth0
ifup eth0

В Ubuntu 12.04 изменилась обработка resolv.conf.

Если вы хотите добавить свой собственный адрес (а) сервера имен, то отредактируйте файл /etc/resolvconf/resolv.conf.d/head

sudo nano /etc/resolvconf/resolv.conf.d/head

и добавьте туда свой сервер имен (например, Google open dns)

nameserver 8.8.8.8

сохраните файл и запустите

sudo resolvconf -u

Нет перезагрузки или что-то еще. Может быть, вам нужно будет перезагрузить Network-Manager

sudo service network-manager restart

Готово.

Вы можете проверить это с помощью команды

nslookup www.google.com

Результат должен быть похож на

Server: 8.8.8.8
Address: 8.8.8.8#53

Чтобы добавить больше записей в /etc/resolv.conf, создать /etc/resolvconf/resolv.conf.d/tail файл и добавьте их туда.

Но если /etc/resolv.conf содержит 127.0.0.1, а затем добавление записей в /etc/resolvconf/resolv.conf.d/tail не изменит ничего. Вы должны установить адреса вашего DNS-сервера статически в NetworkManager, который будет отправлять их на dnsmasq, который прослушивает 127.0.0.1,

Конфигурация DNS для статического интерфейса должна выглядеть так:dns-nameservers","dns-search" а также "dns-domain"Добавлены записи в соответствующую строфу iface в /etc/network/interfaces

Прочитайте это для получения дополнительной информации.

`Более того:

Вы можете установить графический инструмент под названием gnome-network-admin это установит ваш DNS. Попытайся:

sudo apt-get install gnome-network-admin
Другие вопросы по тегам