Wat het doet
ip praat rechtstreeks met de Linux-kernel. Het toont het netwerk precies zoals het nu werkt: elk adres, elke route en de status van elke kaart. Iedereen mag lezen; om te wijzigen heb je root nodig.
Wijzigingen met ip zijn tijdelijk. Ze zijn weg na een herstart of als NetworkManager de kaart opnieuw instelt. Gebruik ip om te kijken en te testen; gebruik nmcli voor instellingen die moeten blijven.
ip vervangt de oude tools ifconfig, route en arp. Elk deel van het netwerk is een object: address, link, route, neigh en meer. Objecten en commando's mag je afkorten: ip a = ip address show, ip r = ip route show.
Zo schrijf je het
ip [OPTIONS] OBJECT { COMMAND | help }
ip address { show | add | del | flush } [ dev IFNAME ] ...
ip link { show | set | add | del } [ dev IFNAME ] ...
ip route { show | get | add | del | replace | flush } ...
ip neigh { show | add | del | flush } ...Belangrijkste delen
address(a,addr)- IPv4- en IPv6-adressen op de kaarten. show, add, del, flush.
link(l)- De netwerkkaarten zelf: status up of down, MAC-adres, MTU, type.
route(r)- De routeringstabel: de standaardgateway en de andere routes. show, get, add, del.
neigh(n,neighbour)- Buren: de tabel van IP naar MAC (ARP voor IPv4, NDP voor IPv6).
rule(ru)- Regels voor policy routing: welke routeringstabel voor welk verkeer.
netns- Netwerk-namespaces, gebruikt door containers. list, add, exec, del.
monitor- Wijzigingen van adressen, links en routes live volgen.
maddress- Multicastadressen.
tunnel,tuntap- Tunnels (GRE, IPIP) en TUN/TAP-apparaten voor VPN's.
xfrm- IPsec-instellingen.
Opties 34
Meest gebruikt
Uitvoer
Werken
Woorden bij address, link en route
Niets past bij dit filter.
Voorbeelden 15
$ als gewone gebruiker# als root (of met sudo)
1Alle adressen op alle kaarten tonen
ip a ip -br -c a lo UNKNOWN 127.0.0.1/8 ::1/128 enp1s0 UP 192.168.122.10/24 fe80::5054:ff:fe3a:7c01/64-br toont één regel per kaart. Dit is de snelste gezondheidscheck op een nieuwe server.
2Alleen het IPv4-adres van één kaart tonen
ip -4 -o addr show dev enp1s0 | awk '{print $4}' 192.168.122.10/24-o zet elk adres op één regel, zodat awk het 4e veld kan pakken. Goed in scripts.
3De standaardgateway vinden
ip route show default default via 192.168.122.1 dev enp1s0 proto static metric 100Geen default-regel betekent dat de server geen andere netwerken kan bereiken.
4Zien welke route en welk bronadres één bestemming gebruikt
ip route get 10.20.5.7 10.20.5.7 via 192.168.122.254 dev enp1s0 src 192.168.122.10 uid 1000Heel handig als een server twee kaarten of een VPN heeft: je ziet via welke kaart en met welk adres het verkeer vertrekt.
5Een kaart controleren op fouten en verloren pakketten
ip -s -h link show enp1s0Oplopende fouten of drops wijzen op een slechte kabel, een slechte driver of een volle buffer. Vergelijk twee keer met een minuut ertussen.
6De MAC-adressen van alle kaarten tonen
ip -br link lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> enp1s0 UP 52:54:00:3a:7c:01 <BROADCAST,MULTICAST,UP,LOWER_UP>Het MAC-adres is nodig voor DHCP-reserveringen en voor sommige softwarelicenties.
7Een testadres toevoegen voor een paar minuten (tijdelijk)
ip addr add 192.168.122.50/24 dev enp1s0 ip addr del 192.168.122.50/24 dev enp1s0Goed voor een snelle test. NetworkManager of een herstart haalt het toch weg. Gebruik nmcli voor een vast adres.
8Een route toevoegen voor een test (tijdelijk)
ip route add 10.30.0.0/16 via 192.168.122.254 dev enp1s0 ip route del 10.30.0.0/16Test eerst met ip. Als het werkt, bewaar het met
nmcli con mod enp1s0 +ipv4.routes "10.30.0.0/16 192.168.122.254".9De buren tonen (ARP-tabel)
ip neigh show 192.168.122.1 dev enp1s0 lladdr 52:54:00:aa:bb:cc REACHABLETwee IP-adressen met hetzelfde MAC-adres, of een gateway-MAC die verandert, kan wijzen op ARP-spoofing.
10Een verkeerde buurregel wissen
ip neigh flush dev enp1s0Nadat je een router vervangt of een IP-adres naar een andere server verhuist, kunnen oude regels het verkeer even blokkeren.
11Een kaart uit- en aanzetten
ip link set enp1s0 down ip link set enp1s0 upDoe dit niet via SSH op de kaart die je gebruikt: je verliest de verbinding.
12De MTU wijzigen voor een test
ip link set dev enp2s0 mtu 9000 ip link show enp2s0 | grep -o 'mtu [0-9]*' mtu 9000Jumboframes helpen bij opslagnetwerken. Alle switches en servers op de weg moeten dezelfde MTU gebruiken.
13Adressen als JSON ophalen voor een script
ip -j addr show dev enp1s0 | jq -r '.[0].addr_info[] | select(.family=="inet") | .local' 192.168.122.10JSON-uitvoer verandert niet tussen versies, dus scripts gaan niet stuk.
14In een netwerk-namespace van een container kijken
ip netns list ip netns exec blue ip -br aContainers en sommige VPN-tools gebruiken namespaces. Elke namespace heeft eigen kaarten en routes.
15Netwerkwijzigingen live volgen
ip -t monitor address routeToont elke wijziging van adressen en routes met de tijd. Druk op Ctrl+C om te stoppen. Handig als een DHCP-lease of een VPN routes wijzigt.
Niets past bij dit filter.
Let op
- Alle wijzigingen met
ipzijn weg na een herstart. NetworkManager kan ze ook eerder overschrijven. ip link set DEV downvia SSH op dezelfde kaart verbreekt je verbinding.ip addr flush dev DEVhaalt alle adressen van de kaart weg.- Lees het masker:
192.168.122.10/24en192.168.122.10/32zijn heel verschillend.
Bestanden
/etc/iproute2/rt_tables- Namen van de routeringstabellen (gebruikt door policy routing).
/proc/net/dev- Ruwe tellers van alle kaarten (wat
ip -s linktoont). /sys/class/net/- Eén map per netwerkkaart met de instellingen.
Tips om te onthouden
- Lees de objecten als vragen: a = welke adressen? r = welke weg? l = welke kaarten? n = wie staat naast me?
ip -br aenip rzijn de eerste twee commando's bij elk kapot netwerk.- Kijk met
ip, wijzig metnmcli.