Wat het doet
NetworkManager is de dienst die het netwerk regelt op Red Hat Enterprise Linux. Hij bewaart je instellingen in verbindingsprofielen. Een profiel bevat de IP-adressen, de gateway, de DNS-servers en meer. nmcli is het commandoregelprogramma om deze profielen en de apparaten (netwerkkaarten) te lezen en te wijzigen.
Instellingen die je met nmcli maakt, worden in het profiel bewaard. Ze blijven dus na een herstart. Dat is het grote verschil met het commando ip, waarvan de wijzigingen bij een herstart verdwijnen.
De meeste commando's kun je korter schrijven: nmcli connection show = nmcli con show = nmcli c s. Tabaanvulling helpt je het volgende woord te vinden.
Zo schrijf je het
nmcli [OPTIONS] OBJECT { COMMAND | help }
nmcli connection { show | up | down | modify | add | edit | clone | delete | reload | load | import | export | monitor }
nmcli device { status | show | set | connect | disconnect | reapply | modify | delete | monitor | wifi | lldp }
nmcli general { status | hostname | permissions | logging | reload }
nmcli networking { on | off | connectivity }
nmcli radio { all | wifi | wwan } [ on | off ]Belangrijkste delen
general- Algemene status van NetworkManager, de hostnaam, je rechten en het logniveau.
networking- Al het netwerkverkeer aan- of uitzetten, of de internetverbinding controleren.
radio- Wifi en mobiel breedband aan- of uitzetten.
connection(con,c)- Werken met profielen: show, add, modify, up, down, delete, reload.
device(dev,d)- Werken met netwerkkaarten: status, details, verbinden, verbreken, wifi.
monitor- Wijzigingen van apparaten en verbindingen live volgen.
agent- Werken als secret- of polkit-agent (vraagt om wachtwoorden).
Opties 45
Meest gebruikt
Algemene opties (voor het object)
Opties van connection-commando's
Instellingen die je vaak wijzigt (setting.property)
Niets past bij dit filter.
Voorbeelden 16
$ als gewone gebruiker# als root (of met sudo)
1Alle profielen tonen en welk apparaat ze gebruikt
nmcli connection show NAME UUID TYPE DEVICE enp1s0 3f0c3a8e-6c35-4c5a-9a0e-7f1a2b3c4d5e ethernet enp1s0 lo 2b1c5e3a-1d2e-4f5a-8b9c-0d1e2f3a4b5c loopback loEen profiel met een lege kolom DEVICE is nu niet actief.
2De status van elke netwerkkaart tonen
nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet connected enp1s0 lo loopback connected (externally) lo"disconnected" betekent dat de kaart werkt maar er geen profiel actief is. "unmanaged" betekent dat NetworkManager de kaart niet beheert.
3Een server een vast IPv4-adres geven
nmcli con mod enp1s0 ipv4.method manual ipv4.addresses 192.168.122.10/24 \ ipv4.gateway 192.168.122.1 ipv4.dns 192.168.122.1 nmcli con up enp1s0De wijziging wordt in het profiel bewaard.
con upgebruikt hem meteen.4Een tweede adres toevoegen zonder het eerste weg te halen
nmcli con mod enp1s0 +ipv4.addresses 192.168.122.110/24 nmcli con up enp1s0Gebruik een min om één adres weer weg te halen:
-ipv4.addresses 192.168.122.110/24.5Een nieuw profiel met een vast adres maken
nmcli con add con-name app-net type ethernet ifname enp2s0 \ ipv4.method manual ipv4.addresses 10.10.20.15/24 ipv4.gateway 10.10.20.1 ipv4.dns 10.10.20.53Handig voor een tweede netwerkkaart, bijvoorbeeld een apart netwerk voor back-ups of databases.
6Alleen je eigen DNS-servers gebruiken (DHCP negeren)
nmcli con mod enp1s0 ipv4.dns "10.0.0.53 10.0.1.53" ipv4.ignore-auto-dns yes ipv4.dns-search corp.example.com nmcli con up enp1s0 cat /etc/resolv.confNetworkManager schrijft /etc/resolv.conf voor je. Een beveiligde server hoort alleen de interne resolvers te gebruiken die vragen loggen.
7Een vaste route naar een ander netwerk toevoegen
nmcli con mod enp1s0 +ipv4.routes "10.20.0.0/16 192.168.122.254" nmcli con up enp1s0 ip route show 10.20.0.0/16Typisch voor een beheernetwerk of een VPN-gateway. De route blijft na een herstart, anders dan
ip route add.8Eén waarde ophalen voor een script
nmcli -g IP4.ADDRESS device show enp1s0 192.168.122.10/24 nmcli -t -f NAME,DEVICE con show --active enp1s0:enp1s0-g en -t geven schone uitvoer zonder koppen. Gebruik het in provisioning-scripts en health checks.
9Een VLAN-interface maken voor een apart netwerk
nmcli con add type vlan con-name vlan30 dev enp1s0 id 30 \ ipv4.method manual ipv4.addresses 172.16.30.5/24 nmcli con up vlan30VLAN's houden verkeer gescheiden, bijvoorbeeld een DMZ voor publieke servers. De switchpoort moet VLAN 30 toestaan.
10Een bond van twee kaarten maken voor failover
nmcli con add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100" \ ipv4.method manual ipv4.addresses 192.168.50.10/24 ipv4.gateway 192.168.50.1 nmcli con add type ethernet port-type bond controller bond0 con-name bond0-p1 ifname enp3s0 nmcli con add type ethernet port-type bond controller bond0 con-name bond0-p2 ifname enp4s0 nmcli con up bond0Als één kabel of switch uitvalt, neemt de andere kaart het over. Controleer met
cat /proc/net/bonding/bond0.11Een profiel in een firewalld-zone zetten
nmcli con mod enp2s0 connection.zone internal nmcli con up enp2s0 firewall-cmd --get-active-zonesElke netwerkkaart kan eigen firewallregels hebben: public voor de internetkant, internal voor de privékant.
12IPv6 uitzetten op een profiel
nmcli con mod enp1s0 ipv6.method disabled nmcli con up enp1s0Doe dit alleen als een beleid erom vraagt. Veel diensten werken prima met IPv6.
13De hostnaam instellen
nmcli general hostname web01.example.com hostnamectl --static web01.example.comHetzelfde resultaat als
hostnamectl set-hostname.14Controleren wie het netwerk mag wijzigen
nmcli general permissionsVia SSH krijgt een gewone gebruiker meestal "no" of "auth". Gebruik sudo.
15Een met de hand bewerkt profiel opnieuw inlezen
vim /etc/NetworkManager/system-connections/enp1s0.nmconnection nmcli con reload nmcli con up enp1s0reloadleest alleen de bestanden opnieuw.upmaakt de nieuwe instellingen actief.16Netwerkwijzigingen live volgen
nmcli monitorHandig terwijl je een kabel loskoppelt of een switch herstart. Druk op Ctrl+C om te stoppen.
Niets past bij dit filter.
Let op
nmcli con modwijzigt alleen het profiel. Voernmcli con up NAAMuit om de wijziging meteen te gebruiken.- Via SSH verbreekt een verkeerd adres of een verkeerde gateway je eigen verbinding. Houd een console open.
- Zonder
+vervangt een instelling zoalsipv4.addressesalle oude waarden. - Twee profielen met autoconnect aan voor één apparaat: je weet niet welke na een herstart start.
ipv4.method manualheeft minstens één adres inipv4.addressesnodig, anders mislukt het commando.- Bewerk
/etc/resolv.confniet met de hand. NetworkManager schrijft het opnieuw.
Bestanden
/etc/NetworkManager/system-connections/- De profielen, één keyfile (.nmconnection) per profiel. Alleen voor root (modus 600).
/etc/NetworkManager/NetworkManager.conf- Hoofdinstellingen van NetworkManager.
/etc/NetworkManager/conf.d/- Extra instellingsbestanden, gelezen na het hoofdbestand.
/run/NetworkManager/system-connections/- Profielen die niet op schijf staan (weg na een herstart).
/etc/resolv.conf- DNS-instellingen. Geschreven door NetworkManager.
Tips om te onthouden
- Onthoud de volgorde: show → modify → up → controleren.
nmcli con show NAAMtoont elke instelling van een profiel. Zoek erin met| grep ipv4.- Kwijt in de woorden? Druk twee keer op Tab na een woord, of typ
nmcli con mod NAAM ipv4.en Tab. man nmcli-examplesheeft veel kant-en-klare voorbeelden.