Как заставить NetworkManager добавлять DNS-сервер в начало /etc/resolv.conf?

Непонятно, о чем именно вы спрашиваете. Но сценарий оболочки может легко взять данные из базы данных MySQL и передать их в iptables .

12
17.11.2016, 14:01
1 ответ

Я не знаю, к какой системе обращаться конкретно, но если ваша использует resolvconf , попробуйте следующее от имени пользователя root ( su - или sudo -i ]):

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

В этом файле есть предупреждение о том, что изменения, внесенные вручную, будут перезаписаны; но в контексте сообщение относится к /etc/resolv.conf , а не к /etc/resolvconf/resolv.conf.d/head .

Это должно поместить желаемый сервер имен первым в списке. Конечно, если это работает в вашей операционной системе, то 10.165.74.2 можно удалить из NetworkManager.

Локальный преобразователь, dnsmasq , также является отличным средством продвижения вперед. Используя dnsmasq , можно использовать гораздо больший контроль над DNS и DHCP. Например, в этом сценарии dnsmasq может запрашивать конкретный сервер имен на основе указанного доменного имени с опцией server . См. Фрагмент из dnsmasq.conf , который может иметь отношение к вашей цели ниже.

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

Обновление

Спасибо за упоминание операционной системы. В CentOS 7 существует множество методов. В графическом интерфейсе щелкните Приложения> Системные инструменты> Настройки> Сеть. Выберите соединение для настройки.

CentOS 7 NetworkManager - Configure Connection

Отключите автоматический DNS и укажите серверы имен. Примените конфигурацию.

CentOS 7 NetworkManager - Apply Static DNS Settings

В следующий раз, когда NetworkManager запустит это соединение, он запишет пользовательские значения. (Во время тестирования я выключил и снова включил сеть, потому что у меня было два сетевых подключения.)

Согласно документации ,

  1. Простой текстовый пользовательский интерфейс на основе curses (TUI) для NetworkManager , nmtui, доступен.
  2. Инструмент командной строки, nmcli, позволяет пользователям и сценариям взаимодействовать с NetworkManager. Обратите внимание, что nmcli может использоваться в системах без графического интерфейса пользователя, таких как серверы, для управления всеми аспектами NetworkManager. Это наравне с инструментами графического интерфейса.

В частности, очень хорошо выглядела документация nmcli .

3
20.08.2021, 11:53

Теги

Похожие вопросы