Ip/Befehl
ip - Befehl zur Konfiguration von Netzwerkschnittstellen
Beschreibung
Mit der Programmsammlung iproute2 rund um den zentralen Befehl ip lassen sich Netzwerkschnittstellen auf der Kommandozeile abfragen oder konfigurieren.
Damit bietet sich diese Sammlung als vollwertiger Ersatz zu klassischen Befehlen wie ifconfig, route und netstat (sämtlich im Paket net-tools) an. Sie ist vollständig IPv6-kompatibel.
Enthalten sind des Weiteren die folgenden Werkzeuge:
- ss (socket status, netstat-Ersatz)
- lnstat (link state, auch ctstat)
- nstat (network statistics tool)
- routef (flush routes)
- routel (list routes)
- rtstat (route state monitoring)
- Nur mit Root-Rechten zugänglich sind
- arpd (userspace arp daemon)
- rtacct (routing table realms and policy propagation)
- rtmon (routing table monitor) und tc (traffic control)
- Im WLAN-Bereich ist der Befehl iw der Ersatz für das bisherige iwconfig
Das Kommando ip aus der iproute2 Toolsammlung dient unter Linux zur Konfiguration von Netzwerkadressen.
- Es ersetzt das ifconfig Kommando aus den obsoleten net-tools.
- Dieser Artikel zeigt die wichtigsten Parameter des ip Kommandos anhand einiger Beispiele.
Installation
Der Befehl ip ist im Paket iproute2 enthalten
# apt install iproute2
Syntax
# ip OBJECT COMMAND
# ip [options] OBJECT COMMAND
# ip OBJECT help
$ ip OPTIONEN SCHNITTSTELLE
Da manche der Optionen dem System-Administrator vorbehalten sind, muss man je nach Anwendungsfall den Befehl sudo voranstellen.
Die CIDR-Notation ermöglicht im Gegensatz zur Dezimalpunktschreibweise von IPv4 kürzere Ausdrücke.
- Beispiel: 192.168.0.0/24 entspricht dem bisherigen 192.168.0.0/255.255.255.0.
- Während man früher wahlweise beide Schreibweisen verwenden konnte, ist nur noch CIDR erlaubt.
OBJECTS-Syntax
OBJEKTE können eine der folgenden sein und können in vollständiger oder abgekürzter Form geschrieben sein:
Objekt | Kurzform | Zweck |
---|---|---|
link | l | Network device |
address | a / addr | Protocol (IP or IPv6) address on a device |
addrlabel | addrl | Etikettenkonfiguration für die Auswahl der Protokolladresse |
neighbour | n / neigh | ARP or NDISC cache entry |
route | r | Routing-Tabelleneintrag |
rule | ru | Regel in der Routing-Richtliniendatenbank |
maddress | m / maddr | Multicast address |
mroute | mr | Multicast-Routing-Cache-Eintrag |
tunnel | t | Tunnel over IP |
xfrm | x | Framework für das IPSec-Protokoll |
Um Informationen zu jedem Objekt abzurufen, verwenden Sie den Hilfebefehl wie folgt:
# ip OBJECT help # ip OBJECT h # ip a help # ip r help
ip kennt sehr viele Optionen (siehe auch Beispiele), die man bei Bedarf in der Manpage oder in der Dokumentation nachschlagen kann.
- Zusätzlich gibt es eine komfortable Soforthilfe: man kombiniert die gewünschte Option mit dem Schlüsselwort help.
$ ip link help
Nachfolgend eine praktisch orientierte Übersicht, die alte und neue Befehle gegenüberstellt.
Alte und neue Befehle | ||
Traditionell | Neu | Zweck |
ifconfig SCHNITTSTELLE | ip addr show SCHNITTSTELLE | IP-Adresse anzeigen |
ifconfig SCHNITTSTELLE hw ether MAC-ADRESSE | ip link set dev SCHNITTSTELLE address MAC-ADDRESSE | MAC-Adresse ändern |
ifconfig SCHNITTSTELLE IP-ADRESSE netmask NETMASK broadcast BROADCAST | ip addr change IP-ADRESSE/CIDR broadcast BROADCAST dev SCHNITTSTELLE | IP-Adresse setzen |
ip addr add IP-ADRESSE/CIDR broadcast BROADCAST dev SCHNITTSTELLE | IP-Adresse hinzufügen | |
ifconfig SCHNITTSTELLE:1 IP-ADRESSE/CIDR | ip addr add IP-ADRESSE/CIDR dev SCHNITTSTELLE label SCHNITTSTELLE:1 | Alias anlegen |
- | ip addr del IP-ADRESSE/CIDR dev SCHNITTSTELLE | IP-Adresse löschen |
ifconfig SCHNITTSTELLE up | ip link set SCHNITTSTELLE up | Schnittstelle aktivieren |
ifconfig SCHNITTSTELLE down | ip link set SCHNITTSTELLE down | Schnittstelle deaktivieren |
route, route -6 | ip route, ip -6 route | Routen (für IPv6) anzeigen |
route add default gw IP-ADRESSE | ip route add default via IP-ADRESSE dev SCHNITTSTELLE | Gateway setzen |
arp -a | ip neighbour | ARP |
netstat | ss | Sockets anzeigen |
Die Optionen für ip kann man auch in Kurzschreibweise als Anfangsbuchstaben der Option angeben.
- Wenn man z. B.
- für alle Netzwerkschnittstellen des Systems die IP-Adressen ausgeben möchte, benötigt man den Befehl ip addr show.
- Die Kurzform ip a s liefert das gleiche Ergebnis.
Alt vs Neu
Veralteter Linux-Befehl und deren Ersetzung:
Alter Befehl | Neuer Befehl |
---|---|
ifconfig -a | ip a |
ifconfig enp6s0 down | ip link set enp6s0 down |
ifconfig enp6s0 up | ip link set enp6s0 up |
ifconfig enp6s0 192.168.2.24 | ip addr add 192.168.2.24/24 dev enp6s0 |
ifconfig enp6s0 netmask 255.255.255.0 | ip addr add 192.168.1.1/24 dev enp6s0 |
ifconfig enp6s0 mtu 9000 | ip link set enp6s0 mtu 9000 |
ifconfig enp6s0:0 192.168.2.25 | ip addr add 192.168.2.25/24 dev enp6s0 |
netstat | ss |
netstat -tulpn | ss -tulpn |
netstat -neopa | ss -neopa |
netstat -g | ip maddr |
route | ip r |
route add -net 192.168.2.0 netmask 255.255.255.0 dev enp6s0 | ip route add 192.168.2.0/24 dev enp6s0 |
route add default gw 192.168.2.254 | ip route add default via 192.168.2.254 |
arp -a | ip neigh |
arp -v | ip -s neigh |
arp -s 192.168.2.33 1:2:3:4:5:6 | ip neigh add 192.168.3.33 lladdr 1:2:3:4:5:6 dev enp6s0 |
arp -i enp6s0 -d 192.168.2.254 | ip neigh del 192.168.2.254 dev wlp7s0 |
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
ip versus ifconfig
Die Tabelle zeigt wichtige Befehle zur Netzwerkkonfiguration und vergleicht die Syntax der Kommandos ip und ifconfig:
Zweck | iproute2 Kommando | iproute2 Kommando Kurzversion | net-tools Kommando |
---|---|---|---|
Linkstatus anzeigen | ip link show | ip l | ifconfig |
Linkstatus inkl. Statistik
(RX/TX bytes, errors, ...) anzeigen |
ip -statistics link show | ip -s l | ifconfig |
IP Adresse anzeigen | ip addr show | ip a | ifconfig -a |
IP Adresse setzen | ip addr add IP/NETMASK dev DEVICE | ip a a IP/NETMASK dev DEVICE | ifconfig DEVICE IP/NETMASK |
IP Adresse entfernen | ip addr del IP/NETMASK dev DEVICE | ip a d IP/NETMASK dev DEVICE | |
IP Adressen entfernen | ip addr flush dev DEVICE | ip a f dev DEVICE | |
Routingtabelle anzeigen | ip route show | ip r | route -n |
Standardgateway setzen | ip route add default via IP | ip r a default via IP | route add default gw IP DEVICE |
ARP-Cache anzeigen | ip neigh show | ip n | arp -na |
Verbindungen anzeigen | ss --tcp --all --processes --extended --numeric | ss -tapen | netstat -tapen |
Informationen anzeigen
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether d4:3d:7e:cb:10:46 brd ff:ff:ff:ff:ff:ff inet 192.168.1.115/24 brd 192.168.1.255 scope global dynamic noprefixroute enp2s0 valid_lft 3561sec preferred_lft 3561sec inet6 2001::7213:7947:5dc7:71d0/64 scope global dynamic noprefixroute valid_lft 86107sec preferred_lft 14107sec inet6 fe80::9d6c:75be:55cb:d0fc/64 scope link noprefixroute valid_lft forever preferred_lft forever
IP-Adresse setzen
# ip a add {ip_addr/mask} dev {interface}
To assign 192.168.1.200/255.255.255.0 to eth0, enter:
# ip a add 192.168.1.200/255.255.255.0 dev eth0
OR
# ip a add 192.168.1.200/24 dev eth0
Broadcast-Adresse ändern
# ip addr add brd {ADDDRESS-HERE} dev {interface} # ip addr add broadcast {ADDDRESS-HERE} dev {interface} # ip addr add broadcast 172.20.10.255 dev dummy0
Fügen Sie der Schnittstelle eth0 die Adresse 192.168.1.50 mit der Netzmaske 255.255.255.0 (/ 24) mit Standardübertragung und der Bezeichnung „eth0Home“ hinzu:
# ip addr add 192.168.1.50/24 brd + dev eth0 label eth0Home
Sie können die Loopback-Adresse für das Loopback-Gerät lo wie folgt einstellen:
# ip addr add 127.0.0.1/8 dev lo brd + scope host
Löschen einer IP-Adresse
# ip a del {ipv6_addr_OR_ipv4_addr} dev {interface}
To delete 192.168.1.200/24 from eth0, enter:
# ip a del 192.168.1.200/24 dev eth0
Flush einer IP-Adresse
Mit dem folgenden Befehl können Sie alle IP-Adressen aus dem privaten Netzwerk 192.168.2.0/24 löschen:
# ip -s -s a f to 192.168.2.0/24 2: eth0 inet 192.168.2.201/24 scope global secondary eth0 2: eth0 inet 192.168.2.200/24 scope global eth0
*** Round 1, deleting 2 addresses *** *** Flush is complete after 1 round ***
Sie können die IP-Adresse auf allen ppp-Schnittstellen (Punkt-zu-Punkt) deaktivieren:
# ip -4 addr flush label "ppp*"
Hier ist ein weiteres Beispiel für alle Ethernet-Schnittstellen:
# ip -4 addr flush label "eth*"
Start/Stopp der Netzwerkkarte
# ip link set dev {DEVICE} {up|down}
Stoppen der Netzwerkkarte
# ip link set dev eth1 down
Starten der Netzwerkkarte
# ip link set dev eth1 up
Txqueuelen ändern
# ip link set txqueuelen {NUMBER} dev {DEVICE}
- Beispiel
Standardeinstellung txqueuelen für eth0 von 1000 auf 10000 ändern
# ip link set txqueuelen 10000 dev eth0 # ip a list eth0
MTU ändern
Für Gigabit-Netzwerke können Sie die maximale Größe der Übertragungseinheiten (MTU) festlegen:
# ip link set mtu {NUMBER} dev {DEVICE}
Geben Sie Folgendes ein, um die MTU des Geräts eth0 auf 9000 zu ändern:
# ip link set mtu 9000 dev eth0 # ip a list eth0 2: eth0: mtu 9000 qdisc pfifo_fast state UP qlen 1000 link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1 inet6 fe80::208:9bff:fec4:3030/64 scope link valid_lft forever preferred_lft forever
Neighbour cache anzeigen
# ip n show # ip neigh show 74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE 10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE 74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE 10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE 74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE 74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY 10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE 10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE
- STALE – Der Nachbar ist gültig, aber wahrscheinlich schon nicht erreichbar.
- DELAY – Ein Paket wurde an den veralteten Nachbarn gesendet und der Kernel wartet auf Bestätigung.
- REACHABLE – Der Nachbar ist gültig und anscheinend erreichbar.
Statische Neighbour-Einträge
# ip neigh add {IP-HERE} lladdr {MAC/LLADDRESS} dev {DEVICE} nud {STATE}
Fügen Sie einen permanenten ARP-Eintrag für den Nachbarn 192.168.1.5 auf dem Gerät eth0 hinzu:
# ip neigh add 192.168.1.5 lladdr 00:1a:30:38:a8:00 dev eth0 nud perm
neighbour state (nud) | Bedeutung |
---|---|
permanent | Der Nachbareintrag ist für immer gültig und kann nur administrativ entfernt werden |
noarp | Der Nachbareintrag ist gültig.
|
stale | Der Nachbareintrag ist gültig, aber verdächtig.
|
reachable | Der Nachbareintrag ist gültig, bis das Erreichbarkeitszeitlimit abgelaufen ist |
Löschen Sie einen ARP-Eintrag
# ip neigh del {IPAddress} dev {DEVICE} # ip neigh del 192.168.1.5 dev eth1
Änderungen sind Status für den Nachbarn 192.168.1.100 auf dem Gerät eth1 erreichbar
# ip neigh chg 192.168.1.100 dev eth1 nud reachable
Flush ARP entry
# ip -s -s n f {IPAddress}
flush neighbour/arp table:
# ip -s -s n f 192.168.1.5
oder
# ip -s -s n flush 192.168.1.5
ip help
$ ip help Usage: ip [ OPTIONS ] OBJECT { COMMAND | help } ip [ -force ] -batch filename where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm | netns } OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } | -l[oops] { maximum-addr-flush-attempts } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size]}
ip link show
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff
ip -statistics link show
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast 2073916 4895 0 0 0 0 TX: bytes packets errors dropped carrier collsns 2073916 4895 0 0 0 0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 1716782262 1369751 0 0 0 0 TX: bytes packets errors dropped carrier collsns 308636400 1172428 0 0 0 0
ip addr show
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff inet 10.1.102.59/24 brd 10.1.102.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe66:72e1/64 scope link valid_lft forever preferred_lft forever
ip addr add IP/NETMASK dev DEVICE
$ sudo ip addr add 10.1.102.60/24 dev eth0 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:66:72:e1 brd ff:ff:ff:ff:ff:ff inet 10.1.102.59/24 brd 10.1.102.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.102.60/24 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe66:72e1/64 scope link valid_lft forever preferred_lft forever
ip addr del IP/NETMASK dev DEVICE
$ sudo ip addr del 10.1.102.60/24 dev eth0 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:17:5e brd ff:ff:ff:ff:ff:ff inet 10.1.102.54/24 brd 10.1.102.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe15:175e/64 scope link valid_lft forever preferred_lft forever
ip addr flush dev DEVICE
$ sudo ip addr flush dev eth0 $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:15:17:5e brd ff:ff:ff:ff:ff:ff
ip route show
$ ip route show default via 10.1.102.1 dev eth0 metric 100 10.1.102.0/24 dev eth0 proto kernel scope link src 10.1.102.59
ip route add default via IP
$ sudo ip route add d via 10.1.102.1
ip neigh show
$ ip neigh show 10.1.102.101 dev eth0 lladdr f0:de:f1:f3:17:88 REACHABLE 10.1.102.1 dev eth0 lladdr 00:0c:42:97:79:63 REACHABLE
Status aller Schnittstellen
$ ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: irda0: <NOARP> mtu 2048 qdisc noop state DOWN qlen 8 link/irda 00:00:00:00 brd ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000 link/ether 00:05:4e:4f:65:e5 brd ff:ff:ff:ff:ff:ff 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
Statistik aller Schnittstellen
wie ifconfig
$ ip -s link
Statistik der Schnittstelle eth0 anzeigen
$ ip -s link show eth0 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0d:60:b1:16:7f brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 2631476274 2634102 0 0 0 0 TX: bytes packets errors dropped carrier collsns 449098710 2363841 0 0 0 0
IP-Adresse der Schnittstelle eth0 anzeigen
$ ip addr show eth0 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0d:60:b1:16:7f brd ff:ff:ff:ff:ff:ff inet 192.168.178.68/24 brd 192.168.178.255 scope global eth0
Standard-Gateway der aktiven Schnittstelle (eth0) anzeigen
$ ip route show | grep 'default' default via 192.168.178.1 dev eth0
Anhang
Siehe auch
Man-Pages
Links
Projekt
Weblinks
- https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax/
- Start Practising Linux ip command and Avoid the Habit of Using ifconfig (linoxide.com, 02.05.2014)
- IProute2 fasst viele Befehle für die Netzkonfiguration zusammen (Linux Magazin 11/2006)
- Iproute2 - Wikipedia
Dokumentation
- IPROUTE2 Utility Suite Howto
- Guide to IP Layer Network Administration
- How to use Linux IP Command
- Deprecated networking commands and their replacements
- ipset - administration tool for kernel IP sets
- Shell/Befehlsübersicht Übersicht über verschiedene Shell-Befehle