Filters
Zo zoek je
  • Gewone woorden vinden namen, teksten en voorbeelden.
  • "twee woorden" vindt precies die zin.
  • --naam of -x vindt een optie.
  • #woord zoekt alleen in commando's.
  • @grep vindt lessen en labs die grep gebruiken.
  • Filters: cat:network · in:labs · in:notes · level:rhcsa · ch:8 · root:yes. Zet ! voor een woord om het weg te laten. OR tussen woorden betekent één ervan.
  • ↑ ↓ bewegen · Enter openen · Esc sluiten · / zoeken

nmcli

Netwerkverbindingen instellen, wijzigen en controleren met NetworkManager.

Niveau
RHCSA-examen
Groep
Netwerk
Root nodig
Voor wijzigingen
Pakket
NetworkManager

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)

-t, --terse
Korte uitvoer voor scripts. Geen koppen, velden gescheiden door ":".
-f, --fields list
Kies welke kolommen je ziet, bijvoorbeeld NAME,DEVICE. all en common werken ook.
-g, --get-values list
Toon alleen de waarden van deze velden. Hetzelfde als -t -f samen. Goed voor scripts.
-p, --pretty
Leesbare uitvoer met koppen en lijnen tussen groepen.
-m, --mode {tabular|multiline}
Toon de uitvoer als tabel of als één veld per regel.
-c, --colors {yes|no|auto}
Wel of geen kleuren in de uitvoer.
-e, --escape {yes|no}
":" en "\" in korte uitvoer escapen (yes is de standaard).
-a, --ask
Vraag om ontbrekende waarden, zoals een wifi-wachtwoord.
-s, --show-secrets
Toon wachtwoorden en sleutels in de uitvoer.
-w, --wait seconds
Hoe lang wachten tot een actie klaar is (bijvoorbeeld con up).
--offline
Werk met profielbestanden zonder draaiende NetworkManager (met connection add/modify, keyfiles lezen en schrijven via stdin en stdout).
--complete-args
Toon de mogelijke volgende woorden (gebruikt door tabaanvulling).
-h, --help
Toon hulp. Werkt ook na elk object: nmcli con help.
-v, --version
Toon de versie van nmcli.

Opties van connection-commando's

--active
Met con show: toon alleen de actieve profielen.
--order list
Met con show: sorteer de lijst, bijvoorbeeld --order +type,-name.
--temporary
Met con modify: wijzig alleen de draaiende toestand, niet het opgeslagen profiel.
save {yes|no}
Met con add: save no maakt een profiel dat niet op schijf wordt bewaard.
con-name name
Met con add: de naam van het nieuwe profiel.
ifname device
Met con add: het apparaat waar het profiel bij hoort. Gebruik * voor elk apparaat.
type type
Met con add: het soort profiel: ethernet, wifi, bond, bridge, vlan, team, vpn, loopback …

Instellingen die je vaak wijzigt (setting.property)

ipv4.method {auto|manual|disabled|link-local|shared}
auto = DHCP, manual = vast adres, disabled = geen IPv4.
ipv4.addresses ip/prefix
De vaste IPv4-adressen met prefix, zoals 192.168.122.10/24. Gebruik + of - om er één toe te voegen of weg te halen.
ipv4.gateway ip
De standaardgateway voor IPv4.
ipv4.dns list
De DNS-servers, gescheiden door spatie of komma.
ipv4.ignore-auto-dns {yes|no}
De DNS-servers die DHCP stuurt niet gebruiken.
ipv4.ignore-auto-routes {yes|no}
De routes die DHCP stuurt niet gebruiken.
ipv4.routes list
Extra routes: "10.20.0.0/16 192.168.122.254". Gebruik + om toe te voegen.
ipv4.route-metric n
Prioriteit van de routes van dit profiel. De laagste wint.
ipv4.never-default {yes|no}
Gebruik dit profiel nooit voor de standaardroute.
ipv4.may-fail {yes|no}
Met "no" is het profiel alleen actief als IPv4 werkt.
ipv6.method {auto|manual|ignore|disabled|link-local|dhcp|shared}
Hoe IPv6 zijn adres krijgt. disabled = geen IPv6 op dit profiel.
ipv6.addresses ip/prefix
De vaste IPv6-adressen, zoals 2001:db8:10::10/64.
ipv6.gateway ip
De standaardgateway voor IPv6.
ipv6.dns list
IPv6-DNS-servers.
connection.id name
De naam van het profiel. Wijzig hem om een profiel te hernoemen.
connection.autoconnect {yes|no}
Start dit profiel vanzelf (ook bij het opstarten).
connection.autoconnect-priority n
Als meerdere profielen kunnen starten, wint het hoogste getal.
connection.interface-name device
Koppel het profiel aan één apparaat.
connection.zone zone
De firewalld-zone van dit profiel, zoals internal of public.
802-3-ethernet.mtu bytes
De MTU van de kaart (korte naam: ethernet.mtu).
802-3-ethernet.cloned-mac-address mac
Gebruik een ander MAC-adres (of random, stable).
vlan.id n
Bij type vlan: het VLAN-nummer.
bond.options list
Bij type bond: zoals "mode=active-backup,miimon=100".

Voorbeelden 16

$ als gewone gebruiker# als root (of met sudo)

  1. 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  lo

    Een profiel met een lege kolom DEVICE is nu niet actief.

  2. 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.

  3. 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 enp1s0

    De wijziging wordt in het profiel bewaard. con up gebruikt hem meteen.

  4. 4Een tweede adres toevoegen zonder het eerste weg te halen

    nmcli con mod enp1s0 +ipv4.addresses 192.168.122.110/24
    nmcli con up enp1s0

    Gebruik een min om één adres weer weg te halen: -ipv4.addresses 192.168.122.110/24.

  5. 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.53

    Handig voor een tweede netwerkkaart, bijvoorbeeld een apart netwerk voor back-ups of databases.

  6. 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.conf

    NetworkManager schrijft /etc/resolv.conf voor je. Een beveiligde server hoort alleen de interne resolvers te gebruiken die vragen loggen.

  7. 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/16

    Typisch voor een beheernetwerk of een VPN-gateway. De route blijft na een herstart, anders dan ip route add.

  8. 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.

  9. 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 vlan30

    VLAN's houden verkeer gescheiden, bijvoorbeeld een DMZ voor publieke servers. De switchpoort moet VLAN 30 toestaan.

  10. 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 bond0

    Als één kabel of switch uitvalt, neemt de andere kaart het over. Controleer met cat /proc/net/bonding/bond0.

  11. 11Een profiel in een firewalld-zone zetten

    nmcli con mod enp2s0 connection.zone internal
    nmcli con up enp2s0
    firewall-cmd --get-active-zones

    Elke netwerkkaart kan eigen firewallregels hebben: public voor de internetkant, internal voor de privékant.

  12. 12IPv6 uitzetten op een profiel

    nmcli con mod enp1s0 ipv6.method disabled
    nmcli con up enp1s0

    Doe dit alleen als een beleid erom vraagt. Veel diensten werken prima met IPv6.

  13. 13De hostnaam instellen

    nmcli general hostname web01.example.com
    hostnamectl --static
    web01.example.com

    Hetzelfde resultaat als hostnamectl set-hostname.

  14. 14Controleren wie het netwerk mag wijzigen

    nmcli general permissions

    Via SSH krijgt een gewone gebruiker meestal "no" of "auth". Gebruik sudo.

  15. 15Een met de hand bewerkt profiel opnieuw inlezen

    vim /etc/NetworkManager/system-connections/enp1s0.nmconnection
    nmcli con reload
    nmcli con up enp1s0

    reload leest alleen de bestanden opnieuw. up maakt de nieuwe instellingen actief.

  16. 16Netwerkwijzigingen live volgen

    nmcli monitor

    Handig terwijl je een kabel loskoppelt of een switch herstart. Druk op Ctrl+C om te stoppen.

Let op

  • nmcli con mod wijzigt alleen het profiel. Voer nmcli con up NAAM uit 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 zoals ipv4.addresses alle oude waarden.
  • Twee profielen met autoconnect aan voor één apparaat: je weet niet welke na een herstart start.
  • ipv4.method manual heeft minstens één adres in ipv4.addresses nodig, anders mislukt het commando.
  • Bewerk /etc/resolv.conf niet 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 NAAM toont 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-examples heeft veel kant-en-klare voorbeelden.