Lange Zeit war die ifconfig
Befehl war die Standardmethode zum Konfigurieren einer Netzwerkschnittstelle. Es hat Linux-Benutzern gute Dienste geleistet, aber Netzwerke sind komplex und die Befehle zu ihrer Konfiguration müssen robust sein. Der ip
Befehl ist der neue Standard-Netzwerkbefehl für moderne Systeme, und in diesem Artikel zeige ich Ihnen, wie Sie ihn verwenden.
Der ip
Der Befehl ist funktional auf zwei Schichten des OSI-Netzwerkstapels organisiert: Schicht 2 (Datenverbindungsschicht) und Schicht 3 (Netzwerk- oder IP-Schicht). Es macht die ganze Arbeit im alten net-tools
Paket.
IP installieren
Der ip
Befehl ist im enthalten iproute2util
Paket. Es ist wahrscheinlich bereits in Ihrer Linux-Distribution enthalten. Wenn dies nicht der Fall ist, können Sie es aus dem Software-Repository Ihrer Distribution installieren.
Vergleich von ipconfig und IP-Nutzung
Der ip
und ipconfic
Befehle können verwendet werden, um eine Netzwerkschnittstelle zu konfigurieren, aber sie machen die Dinge anders. Ich vergleiche, wie man allgemeine Aufgaben mit den alten (ipconfig
) und neu (ip
) Befehle.
Netzwerkschnittstelle und IP-Adresse anzeigen
Wenn Sie die IP-Adresse eines Hosts oder Informationen zur Netzwerkschnittstelle anzeigen möchten, ist das alte ifconfig
Befehl, ohne Argumente, bietet eine gute Zusammenfassung:
$ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether bc:ee:7b:5e:7d:d8 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 41 bytes 5551 (5.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41 bytes 5551 (5.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.1.1.6 netmask 255.255.255.224 broadcast 10.1.1.31
inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212 prefixlen 64 scopeid 0x0<global>
inet6 fe80::8eb3:4bc0:7cbb:59e8 prefixlen 64 scopeid 0x20<link>
ether 08:71:90:81:1e:b5 txqueuelen 1000 (Ethernet)
RX packets 569459 bytes 779147444 (743.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 302882 bytes 38131213 (36.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Das neue ip
Befehl liefert ähnliche Ergebnisse, aber der Befehl ist ip address show
, oder nur ip a
kurz:
$ 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: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether bc:ee:7b:5e:7d:d8 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 08:71:90:81:1e:b5 brd ff:ff:ff:ff:ff:ff
inet 10.1.1.6/27 brd 10.1.1.31 scope global dynamic wlan0
valid_lft 83490sec preferred_lft 83490sec
inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212/64 scope global noprefixroute dynamic
valid_lft 6909sec preferred_lft 3309sec
inet6 fe80::8eb3:4bc0:7cbb:59e8/64 scope link
valid_lft forever preferred_lft forever
IP-Adresse hinzufügen
So fügen Sie einer Schnittstelle eine IP-Adresse hinzu mit ifconfig
, der Befehl lautet:
$ ifconfig eth0 add 192.9.203.21
Der Befehl ist ähnlich für ip
:
$ ip address add 192.9.203.21 dev eth0
Unterbefehle in ip
kann gekürzt werden, daher ist dieser Befehl gleichermaßen gültig:
$ ip addr add 192.9.203.21 dev eth0
Sie können es noch kürzer machen:
$ ip a add 192.9.203.21 dev eth0
Entfernen einer IP-Adresse
Die Umkehrung des Hinzufügens einer IP-Adresse besteht darin, eine zu entfernen.
Mit ifconfig
, die Syntax lautet:
$ ifconfig eth0 del 192.9.203.21
Der ip
Befehlssyntax ist:
$ ip a del 192.9.203.21 dev eth0
Multicast aktivieren oder deaktivieren
Aktivieren (oder deaktivieren) von Multicast auf einer Schnittstelle mit ifconfig
passiert mit dem multicast
Streit:
# ifconfig eth0 multicast
Mit ip
, benutze die set
Unterbefehl mit dem Gerät (dev
) und ein Boolean oder Toggle multicast
Möglichkeit:
# ip link set dev eth0 multicast on
Aktivieren oder deaktivieren Sie ein Netzwerk
Jeder Systemadministrator ist mit dem alten “Aus- und wieder einschalten”-Trick vertraut, um ein Problem zu beheben. In Bezug auf Netzwerkschnittstellen bedeutet dies, ein Netzwerk hoch- oder herunterzufahren.
Der ifconfig
Befehl macht dies mit dem up
oder down
Schlüsselwörter:
# ifconfig eth0 up
Oder Sie können einen dedizierten Befehl verwenden:
# ifup eth0
Der ip
Befehl verwendet die set
Unterbefehl, um die Schnittstelle auf an . zu setzen up
oder down
Zustand:
# ip link set eth0 up
Aktivieren oder deaktivieren Sie das Adressauflösungsprotokoll (ARP)
Mit ifconfig
, aktivieren Sie ARP, indem Sie es deklarieren:
# ifconfig eth0 arp
Mit ip
, Sie einstellen das arp
Eigentum als on
oder off
:
# ip link set dev eth0 arp on
Vor- und Nachteile von ip und ipconfig
Der ip
Kommando ist vielseitiger und technisch effizienter als ifconfig
weil es verwendet Netlink
Steckdosen statt ioctl
Systemaufrufe.
Der ip
Befehl kann ausführlicher und komplexer erscheinen als ifconfig
, aber das ist ein Grund, warum es vielseitiger ist. Sobald Sie anfangen, es zu verwenden, bekommen Sie ein Gefühl für seine interne Logik (z. B. mit set
anstelle einer scheinbar willkürlichen Mischung von Deklarationen oder Einstellungen).
Letzten Endes, ifconfig
veraltet ist (zum Beispiel fehlt die vollständige Unterstützung für Netzwerk-Namespaces) und ip
ist für das moderne Netzwerk ausgelegt. Probieren Sie es aus, lernen Sie es, verwenden Sie es. Sie werden froh sein, dass Sie es getan haben!