Ip/Befehl: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 178: Zeile 178:


== Anwendung ==
== Anwendung ==
=== ip versus ifconfig ===
[[Ip/Anwendung]]
Die Tabelle zeigt wichtige Befehle zur Netzwerkkonfiguration und vergleicht die Syntax der Kommandos ip und ifconfig:
{| class="wikitable"
!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
 
{| class="wikitable"
|+
|-
! 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.
* Es werden keine Versuche unternommen, diesen Eintrag zu validieren.
* Er kann jedoch nach Ablauf seiner Lebensdauer entfernt werden
|-
| stale || Der Nachbareintrag ist gültig, aber verdächtig.
* Diese Option zum IP-Nachbarn ändert den Nachbarstatus nicht, wenn er gültig war und die Adresse durch diesen Befehl nicht geändert wird
|-
| 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
 
<noinclude>


== Anhang ==
== Anhang ==

Version vom 24. Februar 2024, 17:34 Uhr

ip - Befehl zur Konfiguration von Netzwerkschnittstellen

Beschreibung

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

ip ist im Paket iproute2 enthalten

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.

Objekte

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
Hilfebefehl

Informationen zu Objekten abzurufen

# ip OBJECT help
# ip OBJECT h
# ip a help
# ip r help

Optionen

ip kennt sehr viele Optionen

Zusätzlich gibt es eine komfortable Soforthilfe: man kombiniert die gewünschte Option mit dem Schlüsselwort help.

$ ip link help
iproute2 vs. [8net-tools]]

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/Anwendung

Anhang

Siehe auch


Man-Pages

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)

Dokumentation