Назад | Перейти на главную страницу

Как управлять DNS в NetworkManager через консоль (nmcli)?

У меня CentOS 7.2 (гость в VirtualBox, vagrant box centos/7, без графического интерфейса).

Я вижу, что в файле есть сервер имен:

$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.0.2.3

Но как добавить или заменить на новый?

Я сделал это вручную прямо в сети:

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
PEERDNS=no
DNS1=91.217.197.2
DNS2=8.8.8.8

И это работает.

Но есть ли способ сделать это через nmcli?

P.S. Нет nmtui установлен (в выбранной системе).

Вот команда для изменения существующего соединения.

nmcli con mod <connectionName> ipv4.dns "8.8.8.8 8.8.4.4"

connectionName можно найти по команде: nmcli con. В случае вопроса это будет "System eth0"

Если вы хотите игнорировать автоматически настроенные серверы имен и поисковые домены, то есть настройки, переданные от DHCP.

nmcli con mod <connectionName> ipv4.ignore-auto-dns yes

Наконец, чтобы изменения вступили в силу, отключите соединение, а затем включите его:

nmcli con down <connectionName>
nmcli con up <connectionName>

Проверить с cat /etc/resolv.conf. Вы не должны редактировать /etc/resolv.conf вручную, поскольку он генерируется службой NetworkManager, он может быть переопределен в любой момент.

Полезное руководство по nmcli

есть хороший инструмент TUI, разработанный красной шляпой под названием nmtui что вам действительно стоит попробовать. в настоящее время он предустановлен в различных дистрибутивах, но если его нет в вашем, попробуйте:

  sudo yum install networkmanager-tui

он использует текстовый интерфейс на основе curses, доступный из командной строки. nmcli особенно необходим только при написании сценариев и имеет больше места для ошибок из-за большего разнообразия возможных входных данных.

В дополнение к настройке свойства ipv4.dns, описанного выше ...

Чтобы исключить DNS-серверы, предоставляемые DHCP ... установите для свойства ipv4.ignore-auto-dns значение yes.

nmcli con mod <connectionName> ipv4.ignore-auto-dns yes

Чтобы изменения вступили в силу, сначала разорвите соединение, затем увеличьте:

nmcli con down <connectionName>
nmcli con up <connectionName>

Проверить с cat /etc/resolv.conf