Wie verwalte ich DNS in NetworkManager über die Konsole (nmcli)?

14

Ich habe CentOS 7.2 (Gast in VirtualBox, Vagrant Box centos/7, keine GUI).

Ich sehe, dass es einen Nameserver in der Datei gibt:

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

Aber wie kann man neue hinzufügen oder durch neue ersetzen?

Ich habe dies manuell direkt im Netzwerk gemacht:

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

Und es funktioniert.

Aber gibt es eine Möglichkeit, dies zu tun nmcli?

PS Nein nmtuiinstalliert (in einem ausgewählten System).

Kirby
quelle

Antworten:

23

Hier ist der Befehl zum Ändern einer vorhandenen Verbindung.

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

connectionNamekann durch Befehl gefunden werden : nmcli con. Im Fragenfall wird es sein"System eth0"

Wenn Sie automatisch konfigurierte Nameserver und Suchdomänen ignorieren möchten, dh die von DHCP übergebenen Einstellungen.

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

Um die Änderungen zu aktivieren, stellen Sie die Verbindung ab und wieder her:

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

Überprüfen Sie mit cat /etc/resolv.conf. Sie sollten nicht /etc/resolv.confmanuell bearbeiten, da es vom NetworkManager-Dienst generiert wird. Es ist wahrscheinlich, dass es zu einem bestimmten Zeitpunkt überschrieben wird.

Nützliches nmcli-Handbuch

lauc.exon.nod
quelle
Ja, danke, habe es schon gefunden. Ein bisschen bearbeitet Ihre Antwort ... Aber wie kann man einen vorhandenen Nameserver ersetzen?
Kirby
Es gibt "+ ipv4.dns" und "ipv4.dns" kann verwendet werden, aber die zweite (ohne "+") ersetzt nicht.
Kirby
2
Ich würde lieber nmtui oder wenn möglich auch die GUI-Version verwenden. Es ist nicht erforderlich, einen Befehlszeilen-Ninja zu verwenden, wenn Sie eine bequemere Option haben, die dasselbe tut.
lauc.exon.nod
2
@ lauc.exon.nod Einige Optionen sind in nmtui nicht verfügbar, und Sie müssen nmcli verwenden, um sie zu erreichen.
Michael Hampton
Link ist tot ....
am
7

Es gibt ein gutes TUI-Tool, das von Red Hat entwickelt wurde und nmtuidas Sie unbedingt ausprobieren sollten. Es ist heutzutage in verschiedenen Distributionen vorinstalliert, aber wenn es nicht in Ihrer ist, versuchen Sie:

  sudo yum install networkmanager-tui

Es verwendet eine fluchbasierte Textoberfläche, auf die über die Befehlszeile zugegriffen werden kann. nmcliDies ist nur besonders beim Schreiben von Skripten erforderlich und bietet aufgrund der größeren Vielfalt möglicher Eingaben einen größeren Fehlerbereich.

unendlich-etcetera
quelle
Ich kann es erst verwenden, wenn neue DNS eingerichtet wurden, da keine Internetverbindung besteht. Trotzdem danke für diesen Punkt.
Kirby
es ist heutzutage in verschiedenen Distributionen enthalten
unendlich-etcetera
Möglicherweise. Ich hatte es einfach nicht in meinem Docker-Container.
Kirby
5

Zusätzlich zum Festlegen der oben beschriebenen Eigenschaft ipv4.dns ...

Um die von DHCP bereitgestellten DNS-Server auszuschließen, setzen Sie die Eigenschaft ipv4.ignore-auto-dns auf yes.

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

Um die Änderungen zu aktivieren, stellen Sie die Verbindung her und wieder auf:

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

Überprüfen Sie mit cat /etc/resolv.conf

Brien
quelle
Vielen Dank. Das habe ich gesucht.
Anupam Srivastava