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

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

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

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

35
задан 27 February 2015 в 09:28

4 ответа

Если вы используете 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
0
ответ дан 27 February 2015 в 09:28

Чтобы добавить больше записей в /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
0
ответ дан 27 February 2015 в 09:28

В 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
0
ответ дан 27 February 2015 в 09:28

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

0
ответ дан 27 February 2015 в 09:28

Другие вопросы по тегам:

Похожие вопросы: