Является ли /etc/resolv.conf
бесполезным в Ubuntu 12.04 LTS (Precise Pangolin)?
Я вижу, что информация о DNS-сервере теперь хранится в NetworkManager. Инструмент командной строки nmcli
может перечислить это для вас.
Если я хочу добавить еще один DNS сервер, поможет ли добавление его в /etc/resolv.conf
с помощью пакета resolvconf
?
Если /etc/resolv.conf
содержит nameserver 127.0.0.1
, то добавление записей в /etc/resolvconf/resolv.conf.d/tail
не принесет никакой пользы.
Если вы используете NetworkManager, то вместо этого вам следует статически добавить адреса серверов имен через индикатор сети: Edit Connections... | Edit... | Настройки IPv4 | Дополнительные DNS-серверы.
Если вы действительно хотите добавить больше записей в /etc/resolv.conf
, создайте /etc/resolvconf/resolv.conf.d/tail
и добавьте их туда.
Как и в случае с каждым выпуском Ubuntu, рекомендуется прочитать Ubuntu Release Notes, доступные здесь:
Разделы "Рабочий стол" и "Общая инфраструктура" содержат ссылку на
Я нашел другой подход здесь, что предполагает добавление строки, как показано ниже в файле /etc/dhcp-сервер/программа dhclient.конф
:
prepend domain-name-servers x.x.x.x, y.y.y.y;
Кроме того, я нашел третий подход здесь, что предполагает добавление строк в файле /etc/сети/интерфейсов
:
auto eth0
iface eth0 inet static
. . .
dns-nameservers 8.8.8.8 8.8.4.4
Обновление: вот официальные документы для третьего подхода.
Похоже, что вы говорите о пакете resolvconf.
Установите пакет resolvconf.
Запустите
cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig #backup copy, always do this
sudo nano head
В верхней части файла находится страшное предупреждение. Файл /etc/resolv.conf автогенерируется из содержимого этого файла; предупреждение здесь для того, чтобы оно попало в /etc/resolv.conf при генерации /etc/resolv.conf. В конце файла добавьте
nameserver <ip_of_nameserver>
Нажмите Ctrl x и ответьте "да" на сохранение файла. В завершение перегенерируйте /etc/resolv.conf, чтобы изменения были применены прямо сейчас:
sudo resolvconf -u
Затем проверьте содержимое /etc/resolv.conf и убедитесь, что добавленная вами строка теперь там. Более того, она все еще будет там при следующей загрузке машины или перезапуске сетевой службы, в зависимости от того, что произойдет раньше.
Ниже я покажу вам лучший способ, который я нашел, так как я запускаю сервер Ubuntu Edition и использовать ifup, а не через NetworkManager.
На самом деле для меня они сделали это проще :) положить все это в файл интерфейсы в /etc/сети/. Те же конфигурации, которые вы написали бы к resolv.conf, который теперь может быть в одном файле конфигурации сетевой адаптер как показано в примере ниже:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 75.75.75.75 75.75.76.76
dns-search local
Я надеюсь, что это помогает и облегчает, как и мне, теперь мы можем создавать статические IP-адреса и добавить в DNS-серверы и DNS-домена все в одном файле :)
Шахта работает сервер Ubuntu 12.04. Я сделал следующие изменения и перезагрузил сервер (обычно это можно сделать, только снижая сетевой интерфейс, то есть ifdown eth0 В
или ifup eth0 в
).
В файл/etc/resolvconf/файл resolv.конф.Д/База-я добавил следующие записи:
nameserver 8.8.8.8
nameserver 8.8.4.4
Я надеюсь, что выше помогает!
Вы можете использовать NetworkManager как заявил в откровенном'ы ответ, но если вы предпочитаете ручное редактирование файла /etc/файл resolv.конф
, вы можете сделать это путем удаления его (он's фактически символическая ссылка), а затем создает новый текстовый файл с содержимым. В resolvconf программа только записывает в файл
/работа/resolvconf/файл resolv.конф`.
Примечание: Этот ответ был дан для довольно другой, предварительной версии вопроса, с фокусом только на предварительную установку желаемого сервера имен.
Это работает до версии 12.04:
Отредактируйте /etc/dhcp3/dhclient.conf
и добавьте :
prepend domain-name-servers 127.0.0.1;
.
(На самом деле, эта строка уже присутствует; все, что вам нужно сделать, это убрать комментарий).
resolvconf
бесполезно. Я'м на Linux-сервер и мой IP-адрес является статическим и мой ДНС сервера являются статическими. Мне не нужны resolvconf
или настройка.
Все просто-это моя политика при работе на сервере. Чем меньше сложность, тем легче он'll быть, чтобы управлять/исправлять, когда вещи ломаются.
Так я же способностей продувки resolvconf и вручную убедился, что в/etc/файл resolv.confи это'т [ссылки][5] и просто создали статический файл. Только в случае, если программа пытается изменить файл, я сделал
chattr +я(неизменяемые) в файле
/etc/файл resolv.conf` и в качестве меры предосторожности.
Большинство из вышеперечисленных предполагает наличие девственной системы, но реальность часто такова, что вы занимались установкой различных клиентов DHCP, отключил сетевой менеджер в некоторые предыдущие версии Ubuntu, и т. д. Может быть, стоит знать следующее. Я've был с помощью dnsmasq, но демонтировать его. В настоящее время моя система имело следующее содержание файла /etc/файл resolv.конф
(который является символической ссылкой на /работа/resolvconf/файл resolv.conf
и на моей системе):
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
Это не'т имеет значения, как часто я бегу судо resolvconf -U
или `судо команды dpkg-перенастроить resolvconf, она не'т обновить сервер имен на те, что я поставил в помощью. Информация resolvconf не использовать NetworkManager не присутствовал:
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 8.8.8.8
Однако, получается так, что если есть несколько файлов в эту папку, этот файл не может использоваться вообще. Виновником был файл не удаляется при деинсталляции раздача:
cat /run/resolvconf/interface/lo.dnsmasq
nameserver 127.0.0.1
Просто удалением этого файла (и работает судо resolvconf -У
потом) решил мой DNS проблемы:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 8.8.8.8
Я надеюсь, что это помогает другим с помощью отладки (сложных взаимодействий между всеми этими различными сетевыми инструментами), а также. Если вы используете resolvconf
убедитесь, что для запуска команды ls /работа/resolvconf/интерфейсы
, чтобы увидеть, что'ы есть.
Я просто удалил ссылку в /etc/файл resolv.conf
и создал регулярную файл с серверов' адреса. Это работает, и я не'т вижу никаких причин, чтобы использовать эту довольно странную конструкцию, что разработчики Ubuntu создали.
Вы можете изменить подключение на "авто для eth0" или что имя, которое вы используете для подключения в НМ. Вы можете сделать это, щелкнув правой кнопкой мыши на Нм и выбрав "и изменить соединения...и". На вкладке IPv4 вы можете выбрать и"автоматически (DHCP, только адрес) и" как и"способ" и нм позволит вам установить на сервер адрес(адреса) вручную даже адреса передаются через протокол DHCP.
Добавив свою лепту в и без того длинный список, здесь'ы еще один способ (проверено на 12.04):
Редактировать/выполнить/resolvconf/интерфейс/программа NetworkManager`, чтобы соответствовать вашим потребностям. Здесь'ы пример:
search foobar.com example.com
nameserver 192.168.1.1
Затем, как указано на большинстве других примеров, сделать судо resolvconf -у
. Теперь вы найдете ваш файл resolv.conf` и в таком виде:
nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com
Я до сих пор не'т нравится, как он'ы, реализуемые в настоящее время (кажется, в Ubuntu нужен сервис для каждого фу это делает), и предпочел бы обычный файл resolv.conf
и точно. Но этот подход представляется наилучшим компромиссом для меня до сих пор. Добавил, что "локальный-НС quot и; должно'т слишком больно.
Как насчет:
судо команды dpkg-перенастроить resolvconf
До этого использовать сетевой менеджер изменить DNS адрес и способ изменения
автоматическая (находящихся) адреса только
Затем выполните команды выше и перезагрузка. Это не решение для меня.
Я исправил это, изменив порядок источников. Я переехала источник ДНС
до уведомления
в
/и т. д./файл nsswitch.конф
:
hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
Вы можете сохранить ваши настройки и по-прежнему использовать локальный сервер кэширования таким образом.
vi /etc/network/interfaces
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The primary network interface
allow-hotplug eth0
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0 <<----- change this comment with the #
iface eth0 inet dhcp
Это очень популярный вопрос, с набором стандартных ответов, которые, ИМО, довольно суховато. Я, например, всегда были проблемы после установки Ubuntu уважать ДНС я настроил в менеджере сетей, в частности настройки статический DNS-серверов с "автоматически (DHCP, только адрес), что" -- и сегодня я, наконец, разобралась, что на самом деле не так.
Проблема заключается во взаимодействии с resolvconf и NetworkManager. resolvconf этот файл называется файл/etc/resolvconf/интерфейс-заказ
. По крайней мере с моей системы, через NetworkManager разве'т в этот файл вообще (за исключением того, что это'ы, охватываемых * Дикие карты в конце). Вот что происходит, программа dhclient'последний отчет s в resolvconf важнее всего, что она скажет.
Таким образом, по крайней мере в моем случае ответ был добавить
NetworkManager
на или вблизи верхней части интерфейса-того, файл/etc/resolvconf/`.
(Да, я знаю, что многие люди просто говорит: "удалить resolvconf", который выглядит как плохая идея сама по себе мне. Но более того, не менее коварный и xenial рассмотреть resolvconf важной частью системы [например, Убунту-минимальный зависит от него], так что это будет трудно, чтобы держать вашу систему в соответствии с обновленными государство без resolvconf.)
<удар>по запросу могу предоставить более подробно о том, как я это понял.</удара> (редактировать: видимо, я не'т сделать это, когда это было предложено, к сожалению. На данный момент я не'т помню гораздо более подробно, чем то, что я говорю далее:) В общем, я заменил resolvconf исполняемый с оболочкой оболочку вокруг него, который сбросил свои аргументы, ввода, вывода и вывода ошибок в файлах; и добавлен комплект -х для resolvconf's обновление скриптов.
(Редактировать я могу сказать, что то, что я имею в виду в первой части заключается в том, что я использовал команду sudo перенести фактическую resolvconf исполняемый файл, который может быть найден с помощью какой команды или командный тип. Затем создать сценарий оболочки, который в конечном итоге просто выполняет переехал resolvconf, но и выводит аргументы в какой-нибудь файл, и использует перенаправление консоли для отправки устройства stdin, stdout и stderr различные другие файлы. Я не'т вспомнить, куда "resolvconf's обновление скриптов и" и может'т в настоящее время легко проверить. Я думаю, что многие выродки Linux может выяснить, что я имею в виду; возможно, какой-то добрый самаритянин обеспечит еще более подробно в комментарии.)
Другой способ заключается в том, чтобы определить настройки DNS-серверов на:
/etc/docker/daemon.json
Если вы Don'Т есть такой файл, просто создайте его:
{
"dns": ["1.1.1.1", "1.0.0.1"]
}
Чтобы изменить DNS, следуйте инструкциям: https://developers.google.com/speed/public-dns/docs/using
Перейти к сети
Выберите подключение, для которого вы хотите настроить DNS.
Чтобы изменить настройки беспроводного подключения, перейдите на вкладку беспроводное, а затем выберите нужную беспроводную сеть.
Нажмите стрелку (справа), и в появившемся окне, выберите Параметры IPv4 или вкладке Настройки IPv6.
Если выбранный метод автоматически (DHCP), откройте выпадающее меню и выберите Автоматически (DHCP, только адрес) вместо. Если метод находится на что-то другое, не меняйте его.
В поле DNS-серверов, введите DNS IP-адресов, разделенных запятой
сервер 1.1.1.1 имен 1.0.0.1
суда apt-получить установку -г resolvconf
сервер 1.1.1.1 имен 1.0.0.1
перезагрузка