Каков «правильный путь» для внесения изменений в /etc/resolv.conf при наличии /etc/resolv.conf.d?

11

Я в былые времена resolv.confбыл статичным, а ты редактировал его сам.

Позже, клиент DHCP будет переписывать его, используя некоторые статические записи и то, что он получил от аренды DHCP.

В наши дни в некоторых дистрибутивах, таких как мой (Linux Mint 18.1), есть /etc/resolv.conf.dмеханизм с несколькими подкаталогами скриптов, и, ну, я не могу понять, как это работает.

Тогда каков правильный путь,

  • указать, что я хочу использовать или не использовать DNS-сервер (ы), полученные в аренду DHCP?
  • добавить фиксированные записи в resolv.conf, всегда или в качестве запасного варианта, когда нет сервера имен, получаемого по аренде DHCP?
  • принимать решения об относительном порядке в файле?

Я не против написать свои собственные сценарии, если у меня есть, я просто не хочу «работать против» существующего механизма или дублировать работу.

einpoklum
источник
4
Я деинсталлирую resolvconfна серверах ... unix.stackexchange.com/questions/286195/…
Руи Ф. Рибейро,
Вы также можете настроить dhclientигнорирование / замену DHCP DHCP-информации; Я не уверен, что есть механизм /etc/resolv.conf.dдля этого (но я не использую Mint, и у меня нет этих сценариев).
Диркт
@dirkt: На самом деле, на данный момент единственной записью, которая входит в my, /etc/resolv.confявляется localhost (который запускает dnsmasq), поэтому мне не ясно, как dnsmasq, механизм resolv.conf.d и клиент DHCP взаимодействуют.
einpoklum

Ответы:

2

Ответ прост: resolv.conf.dпапка существует в / etc / resolvconf / и содержит файлы head / base / original и tail. каждый из них при редактировании обновит resolv.confфайл в / etc /

Допустим, вы хотите поместить статический DNS-адрес в начале файла resolv.conf/ etc / (потому что при каждой перезагрузке он автоматически сбрасывает настройки по умолчанию), вам нужно отредактировать headфайл в /etc/resolvconf/resolvconf.d/ и ввести например:

nameserver 1.1.1.1
nameserver 1.0.0.1

после этого перезапустите сервис resolvconf, используя:

sudo service resolvconf restart

Теперь зайдите resolv.confв / etc /, и вы увидите новые изменения.

То же самое применимо, если вы хотите поместить материал в конец файла, вы используете tailвместо этого headв /etc/resolvconf/resolvconf.d/

PS: это на 100% проверено и работает Ubuntu и Debian

Изменить: я уже ответил на последние две марки вашего вопроса, теперь касательно первой марки, которая говорит о том, как не использовать адрес DNS, предоставленный DHCP. Это действительно зависит от того, какое программное обеспечение / пакет DNS вы установили, поэтому я рекомендую вам проверить этот пост и убедиться, что вы читаете тот, что ниже, а также в случае, если он у вас есть dnsmasq.

M03
источник
1
+1, но это только объясняет, как сделать часть того, о чем я спрашивал.
einpoklum
0

resol.conf и некоторые подобные механизмы существуют с прошлых лет до настоящего времени. Есть командная строка dhclient, resolvconfкоторая обрабатывает этот файл, однако в последнее время Linux представила новый интерфейс для настройки NetworkManager по имени nmcli . Это богатая команда для управления каждой постоянной сетевой конфигурацией (не во время выполнения). Вы можете использовать что-то вроде:

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

Эта команда будет перезаписывать resolv.confфайл. В RHCA рекомендуется не редактировать resolv.conf вручную и использовать его команды. О директории resolvconf, которую вы упомянули, я могу сказать, что некоторые службы могут иметь свои собственные conf для DNS, поэтому они используют свои собственные conf как OpenVpn. Вы можете проверить /etc/nsswitchфайл также для получения дополнительной информации о разрешении.

Али Гасемпур
источник
Я не верю, что это действительно отвечает на мой вопрос.
einpoklum
Ну, может быть, это мой мисс понял ваш вопрос, но nsswitchфайл является одним из ваших ответов
Али Гасемпур
Я считаю, что @einpoklum хочет контролировать порядок DNS-серверов в resolv.conf(см. man resolv.conf), А не порядок средств, используемых для разрешения ( man nsswitch.conf). Но ваш ответ, тем не менее, интересен.
Xhienne
Спасибо за Ваш интерес . Насколько я знаю, resolv.conf - это последовательный файл, и его приоритет разрешения - сверху вниз.
Али Гасемпур