Ip/Befehl
ip - Befehl zur Konfiguration einer Netzwerkschnittstelle
Beschreibung
Der Befehl ip wird verwendet, um einer Netzwerkschnittstelle eine Adresse zuzuweisen und / oder Netzwerkschnittstellenparameter unter Linux-Betriebssystemen zu konfigurieren.
- Dieser Befehl ersetzt den alten guten und jetzt veralteten Befehl ifconfig auf modernen Linux-Distributionen.
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).
- Dieser Artikel beschränkt sich auf den Befehl ip.
- 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, welches standardmäßig installiert ist
# apt install iproute2
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Fehlerbehebung
Konfiguration
Dateien
Anhang
Siehe auch
Sicherheit
Man-Pages
Links
Projekt
Weblinks
TMP
Beispiele
Die folgenden Ausgaben zeigen einige Beispiele von iproute2 Kommandos.
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
Beispiele
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
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
Dokumentation
Man-Pages
Info-Pages
Siehe auch
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:
- ipset - administration tool for kernel IP sets
- Shell/Befehlsübersicht Übersicht über verschiedene Shell-Befehle