Должен ли я отредактировать файл 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