web-dev-qa-db-fra.com

Comment gérer DNS dans NetworkManager via la console (nmcli)?

J'ai CentOS 7.2 (invité dans VirtualBox, vagrant box centos/7, pas d'interface graphique).

Je vois qu'il y a un serveur de noms dans le fichier:

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

Mais comment ajouter ou remplacer par un nouveau?

Je l'ai fait manuellement directement dans le réseau:

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

Et il fonctionne.

Mais existe-t-il un moyen de le faire via nmcli?

P.S. Aucun nmtui installé (dans un système sélectionné).

13
Kirby

Voici la commande pour modifier une connexion existante.

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

connectionName peut être trouvé par la commande: nmcli con. Dans le cas de la question, ce sera "System eth0"

Si vous souhaitez ignorer les serveurs de noms et les domaines de recherche configurés automatiquement, c'est-à-dire les paramètres transmis par DHCP.

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

Enfin, pour activer les modifications, mettez la connexion vers le bas puis vers le haut:

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

Vérifiez avec cat /etc/resolv.conf. Vous ne devez pas modifier /etc/resolv.conf manuellement car il est généré par le service NetworkManager, il est probable qu'il soit remplacé à tout moment.

Manuel nmcli utile

22
lauc.exon.nod

il y a un bon outil TUI développé par Red Hat nommé nmtui que vous devriez vraiment essayer. il est pré-installé sur diverses distributions, de nos jours, mais si ce n'est pas le vôtre, essayez:

  Sudo yum install networkmanager-tui

il utilise une interface texte basée sur des curses - accessible depuis la ligne de commande. nmcli n'est particulièrement nécessaire que lors de l'écriture de scripts, et a une plus grande marge d'erreur en raison de la plus grande variété d'entrées possibles.

7
infinite-etcetera

En plus de définir la propriété ipv4.dns décrite ci-dessus ...

Pour exclure les serveurs DNS fournis par DHCP ... définissez la propriété ipv4.ignore-auto-dns sur yes.

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

Pour activer les modifications, désactivez puis réactivez la connexion:

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

Vérifiez avec cat /etc/resolv.conf

5
Brien