Является ли /etc/resolv.conf
бесполезным в Ubuntu 12.04 LTS (Precise Pangolin)?
Я вижу, что информация о DNS-сервере теперь хранится в NetworkManager . Инструмент nmcli
командной строки может перечислить это для вас.
Если я хочу добавить еще один DNS- сервер, добавлю ли его /etc/resolv.conf
с помощью resolvconf
справки пакета?
resolv.conf
PnotNP
источник
источник
nm-tool
, а неnmcli
.Ответы:
Если
/etc/resolv.conf
содержит,nameserver 127.0.0.1
то добавление записей/etc/resolvconf/resolv.conf.d/tail
не будет действительно ничего полезного.Если вы используете NetworkManager, вам следует вместо этого статически добавлять адреса серверов имен с помощью индикатора сети : Редактировать соединения ... | Редактировать ... | Настройки IPv4 | Дополнительные DNS-серверы .
Если вы действительно хотите добавить больше записей
/etc/resolv.conf
, создайте/etc/resolvconf/resolv.conf.d/tail
и добавьте их туда.Как и в каждом выпуске Ubuntu, рекомендуется прочитать примечания к выпуску Ubuntu, доступные здесь:
Разделы «Рабочий стол» и «Общая инфраструктура» содержат ссылку на
источник
/etc/resolvconf/resolv.conf.d/tail
файла или использованием Network Manager? Благодарю.dns-nameservers
в свой раздел eth0 в/etc/network/interfaces
./etc/resolvconf/update.d/libc
на сервере Ubuntu 14.04.1:# Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
(установите его/etc/default/resolvconf
, как строки 23 и 24/etc/resolvconf/update.d/libc
шоу.Я нашел другой подход здесь , что включает в себя добавление строки , как ниже , чтобы
/etc/dhcp/dhclient.conf
:Кроме того, я нашел третий подход здесь , что включает в себя добавление строки
/etc/network/interfaces
:Обновление: вот официальная документация для третьего подхода.
источник
third approach
это самый простой способ сделать это./etc/resolvconf/resolv.conf.d/head
(после преодоления вводящего в заблуждение комментария «НЕ РЕДАКТИРОВАТЬ» там :))Похоже, вы говорите о пакете resolvconf.
Установите пакет resolvconf .
Бегать
Верхняя часть файла - страшное предупреждение. Файл /etc/resolv.conf создается автоматически из содержимого этого файла; предупреждение есть, поэтому оно будет помещено в /etc/resolv.conf при генерации /etc/resolv.conf. В конец файла добавьте
Нажмите Ctrl xи ответьте да, чтобы сохранить файл. Чтобы закончить, создайте заново /etc/resolv.conf, чтобы изменения вступили в силу прямо сейчас:
Затем проверьте содержимое /etc/resolv.conf, чтобы увидеть, что добавленная вами строка теперь там. Кроме того, он все еще будет там при следующей загрузке вашей машины или перезапуске вашей сетевой службы, в зависимости от того, что произойдет раньше.
источник
Ниже я покажу вам лучший способ, который я нашел, так как я запускаю Ubuntu Server Edition и использую ifup, а не NetworkManager.
На самом деле для меня они сделали это проще :), поместив все это в файл / etc / network / interfaces. Те же конфигурации, которые вы записали бы в resolv.conf, теперь могут находиться в том же файле, что и конфигурации вашего сетевого адаптера, как в примере ниже:
Я надеюсь, что это поможет и облегчит, как и для меня, теперь мы можем создавать статические IP-адреса и добавлять имена серверов и домен DNS в одном файле :)
источник
Мой работает под управлением Ubuntu Server 12.04. Я внес следующие изменения и перезагрузил сервер (обычно это можно сделать, только отключив сетевой интерфейс,
ifdown eth0
илиifup eth0
).В файл
/etc/resolvconf/resolv.conf.d/base
я добавил следующие записи:Я надеюсь, что вышеупомянутое помогает!
источник
Вы можете использовать NetworkManager, как указано в ответе Фрэнка, но если вы предпочитаете редактировать вручную
/etc/resolv.conf
, вы можете сделать это, удалив его (на самом деле это символическая ссылка), а затем создав новый простой файл с нужным вам содержимым.resolvconf
Утилита только когда - либо записи в файл/run/resolvconf/resolv.conf
.источник
Примечание. Этот ответ был для довольно другой версии Вопроса до слияния, с акцентом только на предварительное ожидание желаемого сервера имен.
Это работает до 12.04:
Отредактируйте
/etc/dhcp3/dhclient.conf
и добавьте:prepend domain-name-servers 127.0.0.1;
(На самом деле, эта строка уже присутствует; все, что вам нужно сделать, это откомментировать.)
источник
man dhclient.conf
чтобы получить доступ к справочной странице dhclient. (Это не ответ на вопрос Азендейла.)resolvconf
бесполезно. Я нахожусь на сервере Linux, и мой IP-адрес статичен, а мои DNS- серверы статичны. Мне не нуженresolvconf
или NetworkManager .Простота - моя политика при работе на сервере. Чем меньше сложности, тем легче будет справиться / исправить ситуацию, когда что-то сломается.
Так что я сделал
aptitude purge resolvconf
и вручную убедился, что/etc/resolv.conf
это не символическая ссылка, а просто создал статический файл. На всякий случай, если программа пытается изменить файл, я сделалchattr +i
(неизменяемый)/etc/resolv.conf
в качестве меры предосторожности.источник
В большинстве вышеперечисленного предполагается, что у вас нетронутая система, но реальность часто такова, что вы устанавливали разные клиенты dhcp, отключали сетевой менеджер в определенной предыдущей версии Ubuntu и т. Д. Возможно, стоит знать следующее. Я использовал dnsmasq некоторое время, но удалил его. В настоящее время моя система имеет следующее содержимое
/etc/resolv.conf
(которое является символической ссылкой в/run/resolvconf/resolv.conf
моей системе):Неважно, как часто я запускаю
sudo resolvconf -u
илиsudo dpkg-reconfigure resolvconf
не обновлял сервер имен до тех, которые я установил в NetworkManager. Информация, которую действительно использует resolvconf из NetworkManager:Однако оказывается, что, если в этом каталоге несколько файлов, этот файл может вообще не использоваться. Виновником был файл, не удаленный при деинсталляции dnsmasq:
Просто удаление этого файла (и запуск
sudo resolvconf -u
после) решил мои проблемы с DNS:Я надеюсь, что это также поможет другим в отладке (сложные взаимодействия между всеми этими различными сетевыми инструментами). Если вы используете,
resolvconf
не забудьте запустить,ls /run/resolvconf/interfaces
чтобы увидеть, что там.источник
/run/resolvconf/interface/
директории, но мойNetworkManager
файл нуждался в любви. Ваш ответ помог решить эту проблему для меня.Я просто удалил ссылку
/etc/resolv.conf
и создал обычный файл с адресами серверов имен. Это работает, и я не вижу причин использовать эту довольно странную конструкцию, созданную разработчиками Ubuntu.источник
Вы можете редактировать соединение «AUTO ETH0» или любое другое имя, которое вы используете для подключения в NM. Вы можете сделать это, щелкнув правой кнопкой мыши на NM и выбрав «Редактировать соединения ...». На вкладке IPv4 вы можете выбрать «Только (DHCP) адреса» в качестве «метода», и NM позволит вам установить адрес (а) сервера имен вручную, даже если адреса доставляются через DHCP.
источник
Добавив мой бит в уже длинный список, вот еще один способ (проверено 12.04):
Изменить
/run/resolvconf/interface/NetworkManager
в соответствии с вашими потребностями. Вот пример:Затем, как указано для большинства других примеров, выполните a
sudo resolvconf -u
. Теперь вы найдете свойresolv.conf
внешний вид так:Мне все еще не нравится, как это реализовано сейчас (кажется, Ubuntu нужен сервис для каждого созданного ею фу), и я предпочел бы
resolv.conf
наверняка простой . Но этот подход кажется мне лучшим компромиссом. Добавленный «localhost-NS» не должен причинять слишком много вреда.источник
Я исправил это, изменив порядок источников. Я переместил
dns
источник раньшеmdns
в/etc/nsswitch.conf
:Вы можете сохранить настройки и по-прежнему использовать локальный сервер кэширования таким образом.
источник
Как насчет:
Перед этим используйте Network Manager, чтобы изменить адрес DNS и изменить метод на
Затем выполните команду выше и перезагрузите компьютер. Это сделало решение для меня.
источник
источник
Это очень популярный вопрос с набором стандартных возможных ответов, и все они, IMO, довольно забавные. У меня всегда были проблемы с тем, чтобы в Ubuntu соблюдались настройки DNS, которые я установил в NetworkManager - в частности, установка статических DNS-серверов с «только автоматическими (DHCP) адресами»), и сегодня я наконец-то выяснил, что на самом деле НЕПРАВИЛЬНО.
Проблема заключается во взаимодействии resolvconf и NetworkManager. resolvconf имеет этот файл с именем
/etc/resolvconf/interface-order
. По крайней мере, в моих системах NetworkManager вообще отсутствует в этом файле (за исключением того, что в конце он обозначен * символом подстановки). Итак, что происходит, последний отчет dhclient для resolvconf имеет приоритет перед тем, что NetworkManager должен сказать.Таким образом, по крайней мере, в моем случае, фактический ответ должен был добавить
в или около вершины
/etc/resolvconf/interface-order
.(Да, я знаю, что многие люди просто говорят «удалить resolvconf», что само по себе кажется мне плохой идеей. Но более того, по крайней мере, хитрый и ксениальный считают resolvconf жизненно важной частью системы [т.е. ubuntu -minimal зависит от него], поэтому было бы трудно поддерживать вашу систему в согласованном, обновленном состоянии без resolvconf.)
По запросу я могу предоставить более подробную информацию о том, как я понял это.( РЕДАКТИРОВАТЬ : очевидно, я не сделал этого, когда это было запрошено, извините. На данный момент я не помню намного больше деталей, чем то, что я говорю дальше :) В двух словах, я заменил исполняемый файл resolvconf оболочкой оболочки вокруг него который сбрасывает свои аргументы, ввод, вывод и stderr в файлы; и добавил set -x в сценарии обновления resolvconf.( РЕДАКТИРОВАТЬ : я могу сказать, что под первой частью я имею в виду то, что я использовал sudo для перемещения реального исполняемого файла resolvconf, который можно найти с помощью команды which или команды type. Затем создайте сценарий оболочки, который в конечном итоге просто выполняет перемещенный resolvconf, но также выводит аргументы в некоторый файл и использует перенаправление оболочки для отправки stdin, stdout и stderr в другие файлы. Я не помню, где находятся «сценарии обновления resolvconf», и в настоящее время я не могу их легко проверить. многие фанаты Linux могут понять, что я имею в виду; возможно, какой-нибудь добрый самаритянин предоставит еще больше подробностей в комментарии.)
источник
Другой способ - определить специфичные для Docker DNS-серверы:
Если у вас нет такого файла, просто создайте его:
Источник: https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Также см .: https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
источник
Чтобы изменить DNS, следуйте инструкциям в: https://developers.google.com/speed/public-dns/docs/using
Перейти в сеть
Выберите соединение, для которого вы хотите настроить DNS.
Чтобы изменить настройки беспроводного соединения, выберите вкладку «Беспроводная связь», затем выберите соответствующую беспроводную сеть.
Нажмите стрелку (вправо) и в появившемся окне выберите вкладку Настройки IPv4 или Настройки IPv6.
Если выбран метод «Автоматический (DHCP)», откройте раскрывающийся список и выберите «Только автоматические (DHCP) адреса». Если метод установлен на что-то другое, не меняйте его.
В поле DNS-серверы введите IP-адреса DNS, разделенные запятой.
источник
0.Добавить временный DNS. Отредактируйте /etc/resolv.conf.
1.Установите или обновите resolvconf.
2. Добавьте свой сервер имен в /etc/resolvconf/resolv.conf.d/tail
3. Перезагрузите компьютер.
источник