У меня проблема с тем, что мой компьютер с Ubuntu использует неправильный DNS-сервер. По какой-то причине машина запрашивает localhost
информацию DNS.
Я добавил DNS-сервер в графическом интерфейсе сетевых настроек, но /etc/resolv.conf
по-прежнему содержит 127.0.0.1
в качестве адреса DNS-сервера. Теперь я подумал, что могу просто отредактировать файл самостоятельно, но в нем прямо сказано, что я не должен редактировать файл вручную.
Теперь, поскольку GUI сетевых настроек не сгенерировал файл с правильными настройками, как мне сгенерировать новый resolv.conf
файл самостоятельно?
Если вы используете 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
Чтобы добавить больше записей в /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
В 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
То, что ни один из ответов, опубликованных до сих пор, не является адресом, - это то, что спрашивающий не понимает, что наличие 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/
. Смотрите мои комментарии к этим ответам.