Die ip
Der Befehl ist ein leistungsstarkes Tool zum Konfigurieren von Netzwerkschnittstellen, das jeder Linux-Systemadministrator kennen sollte. Es wird verwendet, um Schnittstellen hoch- oder herunterzufahren, Adressen und Routen zuzuweisen und zu entfernen, den ARP-Cache zu verwalten und vieles mehr.
Dieser Artikel erklärt die Verwendung des ip-Befehls anhand praktischer Beispiele und detaillierter Erläuterungen der gängigsten Optionen.
So verwenden Sie den IP-Befehl #
Die ip
Das Dienstprogramm ist Teil des iproute2-Pakets, das auf allen modernen Linux-Distributionen installiert ist.
Die Syntax für die ip
Befehl lautet wie folgt:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJEKT ist der Objekttyp, den Sie verwalten möchten. Die am häufigsten verwendeten Objekte (oder Unterbefehle) sind:
link
(l
) - Netzwerkschnittstellen anzeigen und ändern.address
(a
) - IP-Adressen anzeigen und ändern.route
(r
) - Anzeigen und Ändern der Routing-Tabelle.neigh
(n
) - Anzeige und Manipulation von Nachbarobjekten (ARP-Tabelle).
Das Objekt kann vollständig oder abgekürzt (kurz) geschrieben werden. Um eine Liste mit Befehlen und Argumenten für jedes Objekt anzuzeigen, geben Sie ip OBJECT help
ein .
Beim Konfigurieren von Netzwerkschnittstellen müssen Sie die Befehle als Root oder Benutzer mit sudo-Privilegien ausführen. Andernfalls gibt der Befehl RTNETLINK answers: Operation not permitted
.
Die mit ip
eingestellten Konfigurationen Befehl sind nicht persistent. Nach einem Systemneustart gehen alle Änderungen verloren. Um die Änderungen dauerhaft zu machen, müssen Sie die distributionsspezifischen Konfigurationsdateien bearbeiten oder die Befehle zu einem Startskript hinzufügen.
IP-Adressen anzeigen und ändern #
Beim Betrieb mit der addr
Objekt haben die Befehle die folgende Form:
ip addr [ COMMAND ] ADDRESS dev IFNAME
Die am häufigsten verwendeten BEFEHLE der addr
Objekt sind:show
, add
, und del
.
Informationen zu allen IP-Adressen anzeigen #
Geben Sie den folgenden Befehl ein, um eine Liste aller Netzwerkschnittstellen und der zugehörigen IP-Adresse anzuzeigen:
ip addr show
Die Ausgabe sieht in etwa so aus:
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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
valid_lft 2900sec preferred_lft 2900sec
inet6 fe80::5054:ff:fe8c:6244/64 scope link
valid_lft forever preferred_lft forever
Sie erhalten dieselbe Ausgabe, wenn Sie show
weglassen Befehl und geben Sie Folgendes ein:ip addr
.
Wenn Sie nur IPv4
anzeigen möchten oder IPv6
IP-Adressen verwenden Sie ip -4 addr
oder ip -6 addr
.
Anzeigen von Informationen über eine einzelne Netzwerkschnittstelle #
Um Informationen über eine bestimmte Netzwerkschnittstelle zu erhalten, verwenden Sie ip addr show dev
gefolgt vom Gerätenamen. Zum Beispiel, um eth0
abzufragen , würden Sie Folgendes eingeben:
ip addr show dev eth0
IP-Adressen einer Schnittstelle zuweisen #
Um einer Schnittstelle eine IP-Adresse zuzuweisen, verwenden Sie die folgende Syntax:
ip addr add ADDRESS dev IFNAME
Wobei IFNAME
ist der Schnittstellenname und ADDRESS
ist die IP-Adresse, die Sie der Schnittstelle zuweisen möchten.
Zum Hinzufügen der Adresse 192.168.121.45
mit Netzmaske 24 an Gerät eth0
, würden Sie Folgendes eingeben:
sudo ip address add 192.168.121.45/24 dev eth0
Bei Erfolg zeigt der Befehl keine Ausgabe an. Wenn die Schnittstelle nicht vorhanden ist, erhalten Sie Cannot find device "eth0"
.
Weise mehrere IP-Adressen derselben Schnittstelle zu #
Mit ip
, können Sie derselben Schnittstelle mehrere Adressen zuweisen. Zum Beispiel:
sudo ip address add 192.168.121.241/24 dev eth0
sudo ip address add 192.168.121.45/24 dev eth0
Um zu bestätigen, dass die IPs zugewiesen wurden, geben Sie ip -4 addr show dev eth0
ein oder ip -4 a show dev eth0
:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet 192.168.121.241/24 brd 192.168.121.255 scope global dynamic eth0
valid_lft 3515sec preferred_lft 3515sec
inet 192.168.121.45/24 scope global secondary eth0
valid_lft forever preferred_lft forever
Entfernen/löschen Sie eine IP-Adresse von der Schnittstelle #
Die Syntax zum Entfernen einer IP-Adresse von einer Schnittstelle lautet wie folgt:
ip addr dev ADDRESS dev IFNAME
IFNAME ist der Schnittstellenname und ADRESSE ist die IP-Adresse, die Sie von der Schnittstelle entfernen möchten.
Zum Entfernen der Adresse 192.168.121.45/24
vom Gerät eth0 geben Sie ein:
sudo ip address del 192.168.121.45/24 dev eth0
Anzeigen und Ändern von Netzwerkschnittstellen #
Verwenden Sie den link
, um den Status der Netzwerkschnittstellen zu verwalten und anzuzeigen Objekt.
Beim Arbeiten mit dem link
Objekte sind die am häufigsten verwendeten Befehle:show
, set
, add
, und del
.
Informationen zu Netzwerkschnittstellen # anzeigen
Um eine Liste aller Netzwerkschnittstellen anzuzeigen, geben Sie den folgenden Befehl ein:
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
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 fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Im Gegensatz zu ip addr show
, ip link show
druckt keine Informationen über die mit dem Gerät verknüpften IP-Adressen.
Um Informationen über eine bestimmte Netzwerkschnittstelle zu erhalten, verwenden Sie ip link show dev
gefolgt vom Gerätenamen. Zum Beispiel, um eth0
abzufragen Sie würden Folgendes eingeben:
ip link show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:8c:62:44 brd ff:ff:ff:ff:ff:ff
Ändern Sie den Status der Schnittstelle UP/DOWN #
Um Schnittstellen nach oben oder unten zu bringen, verwenden Sie den ip link set dev
gefolgt vom Gerätenamen und dem gewünschten Zustand:
ip link set dev {DEVICE} {up|down}
Zum Beispiel, um die Schnittstelle eth0
zu bringen online würden Sie Folgendes eingeben:
ip link set eth0 up
Und zu bringen, wenn offline
ip link set eth0 down
Anzeigen und Ändern der Routing-Tabelle #
Um die Kernel-Routing-Tabelle zuzuweisen, zu entfernen und anzuzeigen, verwenden Sie route
Objekt. Die am häufigsten verwendeten Befehle bei der Arbeit mit den Routenobjekten sind:list
, add
, und del
.
Routing-Tabelle Nr. anzeigen
Verwenden Sie einen der folgenden Befehle, um eine Liste der Kernel-Route-Einträge zu erhalten:
ip route
ip route list
ip route list SELECTOR
Bei Verwendung ohne SELECTOR
Der Befehl listet alle Routeneinträge im Kernel auf:
ip route list
default via 192.168.121.1 dev eth0 proto dhcp src 192.168.121.241 metric 100
192.168.121.0/24 dev eth0 proto kernel scope link src 192.168.121.241
192.168.121.1 dev eth0 proto dhcp scope link src 192.168.121.241 metric 100
Um nur das Routing für ein bestimmtes Netzwerk anzuzeigen, zum Beispiel 172.17.0.0/16
Sie würden Folgendes eingeben:
ip r list 172.17.0.0/16
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
Neue Route hinzufügen #
Um der Routing-Tabelle einen neuen Eintrag hinzuzufügen, verwenden Sie den route add
Befehl gefolgt vom Netzwerk- oder Gerätenamen.
Fügen Sie über das Gateway unter 192.168.121.1 eine Route zu 192.168.121.0/24 hinzu
ip route add 192.168.121.0/24 via 192.168.121.1
Fügen Sie eine Route zu 192.168.121.0/24 hinzu, die auf dem Gerät eth0 erreicht werden kann.
ip route add 192.168.121.0/24 dev eth0
Um eine Standardroute hinzuzufügen, verwenden Sie das Schlüsselwort default
. Der folgende Befehl fügt eine Standardroute über das lokale Gateway 192.168.121.1
hinzu die auf dem Gerät eth0
erreichbar ist .
ip route add default via 192.168.121.1 dev eth0
Lösche eine Route #
Um einen Eintrag aus der Routing-Tabelle zu löschen, verwenden Sie den route add
Befehl. Die Syntax zum Löschen einer Route ist dieselbe wie beim Hinzufügen.
Der folgende Befehl löscht die Standardroute:
ip route del default
Löschen Sie eine Route für 192.168.121.0/24 über das Gateway bei 192.168.121.1
ip route add 192.168.121.0/24 via 192.168.121.1
Schlussfolgerung #
Inzwischen sollten Sie ein gutes Verständnis für die Verwendung der Linux-ip
haben Befehl. Für weitere Informationen über die andere ip
Optionen, besuchen Sie die Manpage für den ip-Befehl oder geben Sie man ip
ein in Ihrem Terminal.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.