Ip/Befehl

Aus Foxwiki

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

  1. ping

Links

Projekt

Weblinks

  1. https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax/
  2. Start Practising Linux ip command and Avoid the Habit of Using ifconfig (linoxide.com, 02.05.2014)
  3. IProute2 fasst viele Befehle für die Netzkonfiguration zusammen (Linux Magazin 11/2006)