Dieser Artikel ist der erste in einer Reihe, die sich um „Crowd-Sourced“-Befehlsempfehlungen dreht. Ich habe eine Gruppe unserer wichtigsten Mitwirkenden nach ihren bevorzugten Linux-Befehlen gefragt, und das Feedback war überwältigend. Wir haben 46 einzelne Befehle erhalten, und viele davon wurden durch mehrere Übermittlungen unterstrichen.
Diese Reihe stellt die vollständige Liste dar, aufgeschlüsselt nach Kategorien. Ich habe diese ersten sieben Befehle "Netzwerkbefehle, die jeder kennen sollte" genannt.
Anmerkung der Redaktion :Evans Amoany lieferte die Befehlsinformationen und Beispiele. Einer unserer Sudoer und ein talentierter *nix-Admin. Shoutout an Evans, dass er hier die schwere Arbeit erledigt hat.
[Das könnte Ihnen auch gefallen: Linux-Netzwerke:13 Verwendungsmöglichkeiten für Netstat]
IP
Die ip
Der Befehl ist einer der grundlegenden Befehle, die jeder Administrator bei der täglichen Arbeit benötigt, von der Einrichtung neuer Systeme über die Zuweisung von IPs bis hin zur Fehlerbehebung bei bestehenden Systemen. Die ip
Der Befehl kann Adressinformationen anzeigen, das Routing manipulieren und verschiedene Geräte, Schnittstellen und Tunnel des Netzwerks anzeigen.
Die Syntax lautet wie folgt:
ip
Das OBJEKT ist der wichtigste Teil der Zusammenfassung, und die folgenden werden unterstützt (einige der Kürze halber weggelassen):
Adresse - Protokolladresse (IPv4 oder IPv6) auf einem Gerät.
- tunnel - Tunnel über IP
- route - Routing-Tabelleneintrag
- Regel - Regel in der Routing-Richtliniendatenbank
- vrf - Verwalten Sie virtuelle Routing- und Weiterleitungsgeräte
- xfrm - IPSec-Richtlinien verwalten
Hier sind einige häufige Anwendungsfälle für ip
Befehl.
So zeigen Sie die einer Schnittstelle auf Ihrem Server zugewiesenen IP-Adressen an:
[root@server ~]# ip address show
Um einer Schnittstelle eine IP zuzuweisen, zum Beispiel enps03 :
[root@server ~]# ip address add 192.168.1.254/24 dev enps03
So löschen Sie eine IP auf einer Schnittstelle:
[root@server ~]# ip address del 192.168.1.254/24 dev enps03
Ändern Sie den Status der Schnittstelle, indem Sie die Schnittstelle eth0 bringen online:
[root@server ~]# ip link set eth0 up
Ändern Sie den Status der Schnittstelle, indem Sie die Schnittstelle eth0 bringen offline:
[root@server ~]# ip link set eth0 down
Ändern Sie den Status der Schnittstelle, indem Sie die MTU von eth0 ändern :
[root@server ~]# ip link set eth0 mtu 9000
Ändern Sie den Status der Schnittstelle, indem Sie den Promiscuous-Modus für eth0 aktivieren :
[root@server ~]# ip link set eth0 promisc on
Fügen Sie eine Standardroute (für alle Adressen) über das lokale Gateway 192.168.1.254 hinzu, das auf dem Gerät eth0 erreichbar ist :
[root@server ~]# ip route add default via 192.168.1.254 dev eth0
Fügen Sie eine Route zu 192.168.1.0/24 über das Gateway bei 192.168.1.254 hinzu:
[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254
Fügen Sie eine Route zu 192.168.1.0/24 hinzu, die auf Gerät eth0 erreichbar ist :
[root@server ~]# ip route add 192.168.1.0/24 dev eth0
Löschen Sie die Route für 192.168.1.0/24 über das Gateway bei 192.168.1.254:
[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254
Anzeige der Route für IP 10.10.1.4:
[root@server ~]# ip route get 10.10.1.4
ifconfig
Die ifconfig
Der Befehl war/ist ein Grundnahrungsmittel im Werkzeuggürtel vieler Sysadmins zur Konfiguration und Fehlerbehebung von Netzwerken. Es wurde inzwischen durch ip
ersetzt Befehl oben besprochen. Wenn Sie jedoch weitere Informationen dazu wünschen, lesen Sie unseren zuvor veröffentlichten Artikel hier.
mtr
MTR (Matt's Traceroute) ist ein Programm mit einer Befehlszeilenschnittstelle, das als Netzwerkdiagnose- und Fehlerbehebungstool dient. Dieser Befehl kombiniert die Funktionalität des ping
und traceroute
Befehle. Genau wie eine traceroute
, der mtr
Der Befehl zeigt die Route von einem Computer zu einem bestimmten Host. mtr
bietet viele Statistiken über jeden Hop, wie z. B. Antwortzeit und Prozentsatz. Mit dem mtr
Befehl erhalten Sie mehr Informationen über die Route und können problematische Geräte auf dem Weg sehen. Wenn Sie eine plötzliche Verlängerung der Antwortzeit oder Paketverluste sehen, dann gibt es offensichtlich irgendwo eine schlechte Verbindung.
Die Syntax des Befehls lautet wie folgt:
mtr
Sehen wir uns einige gängige Anwendungsfälle an.
Das grundlegende mtr
Der Befehl zeigt Ihnen die Statistiken, einschließlich jedes Hops (Hostnamen) mit Zeit und Verlust%:
[root@server ~]# mtr google.com
Numerische IP-Adressen anzeigen (wenn Sie -g
verwenden , erhalten Sie IP-Adressen (Zahlen) anstelle von Hostnamen):
[root@server ~]# mtr -g google.com
Zeigt auch die numerischen IP-Adressen und Hostnamen an:
[root@server ~]# mtr -b google.com
Legen Sie die Anzahl der Pings fest, die Sie senden möchten:
[root@server ~]# mtr -c 10 google.com
Holen Sie sich einen Bericht des mtr
Befehlsergebnis:
[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output
oder:
[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output
Erzwingen Sie die Verwendung von TCP anstelle von ICMP:
[root@server ~]# mtr –tcp google.com
Erzwingen Sie die Verwendung von UDP anstelle von ICMP:
[root@server ~]# mtr –udp google.com
Legen Sie die maximale Anzahl an Hops fest:
[root@server ~]# mtr -m 35 216.58.223.78
Definieren Sie die Paketgröße:
[root@server ~]# mtr -r -s 50 google.com
Als CSV-Ausgabe drucken:
[root@server ~]# mtr –csv google.com
In XML-Ausgabe drucken:
[root@server ~]# mtr –xml google.com
tcpdump
Der tcpdump
Der Befehl dient zum Erfassen und Anzeigen von Paketen.
Sie können tcpdump
installieren mit dem folgenden Befehl:
[root@server ~]# dnf install -y tcpdump
Bevor Sie mit der Erfassung beginnen, müssen Sie wissen, welche Schnittstellen tcpdump
sind Kann benutzen. In diesem Fall müssen Sie sudo verwenden oder Root-Zugriff haben.
[root@server ~]# tcpdump -D
1 eth0
2 nflog
3 nfqueue
4 usbmon1
5 any
6 lo (Loopback)
Wenn Sie Traffic auf eth0 erfassen möchten , können Sie das mit tcpdump -i eth0
initiieren Beispielausgabe:
[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10
Datenverkehr zu und von einem Host erfassen
Sie können Datenverkehr herausfiltern, der von einem bestimmten Host kommt. Um beispielsweise Datenverkehr von und nach 8.8.8.8 zu finden, verwenden Sie den Befehl:
[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8
Verwenden Sie für Datenverkehr aus 8.8.8.8:
[root@server ~]# tcpdump -i eth0 src host 8.8.8.8
Verwenden Sie für ausgehenden Datenverkehr zu 8.8.8.8:
[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8
Datenverkehr zu und von einem Netzwerk erfassen
Mit dem folgenden Befehl können Sie auch Traffic zu und von einem bestimmten Netzwerk erfassen:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0
oder:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24
Sie können auch nach Quelle oder Ziel filtern.
Basierend auf der Quelle (Zugriff von):
[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24
Basierend auf dem Ziel (Verkehr geht zu):
[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24
Datenverkehr zu und von Portnummern erfassen
Erfassen Sie nur DNS-Port 53-Datenverkehr:
[root@server ~]# tcpdump -i eth0 port 53
Für einen bestimmten Host,
[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53
Um nur HTTPS-Verkehr zu erfassen,
[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443
Um alle Ports außer Port 80 und 25 zu erfassen,
[root@server ~]# tcpdump -i eth0 port not 53 and not 25
netstat
Die netstat
Tool zum Drucken von Netzwerkverbindungen, Routing-Tabellen, Schnittstellenstatistiken, Masquerade-Verbindungen und Multicast-Mitgliedschaften. Dieses Dienstprogramm ist Teil des net-tool-Pakets, ebenso wie ifconfig
. Im neuen iproute2-Paket ist die Datei ss
Tool verwendet wird, um die gleichen Ziele zu erreichen.
Wenn netstat
auf Ihrem System nicht gefunden wird, installieren Sie es mit diesem Befehl:
[root@server ~]# dnf install net-tools
Die primäre Verwendung von netstat
ist ohne Parameter:
[root@server ~]# netstat
Erweitern Sie für die erweiterte Verwendung die netstat
Befehl mit Optionen:
netstat <options>
Oder listen Sie die Optionen einzeln auf:
netstat <option 1> <option 2> <option 3>
Um alle Ports und Verbindungen unabhängig von ihrem Status oder Protokoll aufzulisten, verwenden Sie:
[root@server ~]# netstat -a
Listen Sie alle TCP-Ports auf, indem Sie Folgendes ausführen:
[root@server ~]# netstat -at
Alle UDP-Ports auflisten mit:
[root@server ~]# netstat -au
Verwenden Sie zum Zurückgeben einer Liste ausschließlich lauschender Ports für alle Protokolle:
[root@server ~]# netstat -l
Listen Sie alle lauschenden TCP-Ports auf mit:
[root@server ~]# netstat -lt
Geben Sie nur lauschende UDP-Ports zurück, indem Sie Folgendes ausführen:
[root@server ~]# netstat -lu
Um UNIX-Listening-Ports aufzulisten, verwenden Sie:
[root@server ~]# netstat -lx
Statistiken für alle Ports unabhängig vom Protokoll anzeigen mit:
[root@server ~]# netstat -s
Statistiken nur für TCP-Ports auflisten mit:
[root@server ~]# netstat -st
Um die TCP-Verbindungen mit dem aufgelisteten PID-/Programmnamen anzuzeigen, verwenden Sie:
[root@server ~]# netstat -tp
Um einen Prozess zu finden, der eine bestimmte Portnummer verwendet, führen Sie Folgendes aus:
[root@server ~]# netstat -an | grep ‘:<port number>’
nslookup
Verwenden Sie nslookup
Dienstprogramm zum interaktiven Abfragen von Internet-Nameservern. Verwenden Sie es, um DNS-Abfragen durchzuführen und Domänennamen oder IP-Adressen oder andere spezifische DNS-Einträge zu erhalten.
Betrachten Sie die folgenden allgemeinen Beispiele.
So finden Sie den A-Eintrag einer Domain:
[root@server ~]# nslookup example.com
So prüfen Sie die NS-Einträge einer Domain:
[root@server ~]# nslookup -type=ns example.com
So finden Sie die für den E-Mail-Austausch verantwortlichen MX-Einträge:
[root@server ~]# nslookup -query=mx example.com
So finden Sie alle verfügbaren DNS-Einträge einer Domain:
[root@server ~]# nslookup -type=any example.com
So überprüfen Sie die Verwendung eines bestimmten DNS-Servers (in diesem Fall Abfrage mit dem bestimmten Nameserver ns1.nsexample.com):
[root@server ~]# nslookup example.com ns1.nsexample.com
Das Überprüfen von DNS-A-Einträgen, um die IPs einer Domain zu sehen, ist eine gängige Praxis, aber manchmal müssen Sie überprüfen, ob eine IP-Adresse mit einer bestimmten Domain verknüpft ist. Zu diesem Zweck benötigen Sie eine Reverse-DNS-Suche.
[root@server ~]# nslookup 10.20.30.40
ping
Ping ist ein Tool, das die Konnektivität auf IP-Ebene mit einem anderen TCP/IP-Computer überprüft, indem Internet Control Message Protocol (ICMP) Echo Request-Nachrichten gesendet werden. Der Empfang entsprechender Echo-Reply-Nachrichten wird zusammen mit den Roundtrip-Zeiten angezeigt. Ping ist der primäre TCP/IP-Befehl, der zur Fehlerbehebung bei Konnektivität, Erreichbarkeit und Namensauflösung verwendet wird.
Einfaches ping
Befehle nehmen nur einen Parameter entgegen:Den Hostnamen oder die Host-IP-Adresse, die Sie überprüfen möchten. Ein einfacher ping
Beispiel ist genau wie unten:
[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms
Sie müssen den ping
stoppen Befehl durch Drücken von STRG+C . Andernfalls wird es ping
bis du damit aufhörst. Nach jedem ping
Befehl, wird ein zusammenfassender Bericht mit den folgenden Informationen angezeigt:
- Min:Minimale Zeit, die benötigt wird, um eine Antwort vom Host zu erhalten, der von Ihrer Seite gepingt wurde.
- Durchschn.:Durchschnittliche Zeit, die benötigt wird, um eine Antwort vom Host zu erhalten, der von Ihrer Seite gepingt wurde.
- Max:Maximale Zeit, die benötigt wird, um eine Antwort vom Host zu erhalten, der von Ihrer Seite gepingt wurde.
Außerdem sehen Sie TTL, was für Time To Live steht. Ping verwendet einen numerischen TTL-Wert, um zu versuchen, einen bestimmten Host-Computer über den Routenpfad zu erreichen. Dies wird auch als Hop-Limit bezeichnet.
Normalerweise, wenn Sie einen einfachen ping
ausführen Befehl, ohne zusätzliche Parameter zu übergeben, wird Linux ping
dieser Host für eine unendliche Zeit. Wenn Sie ping
möchten einen Host zehnmal, verwenden Sie den folgenden Befehl:
[root@server ~]# ping -c 10 google.com
Verwenden Sie die Option -q
um nur den ping
anzuzeigen Statistikzusammenfassung:
[root@server ~]# ping -c 10 google.com
Auf Systemen mit mehreren Schnittstellen können Sie die Schnittstelle für den ping
angeben Befehl zu verwenden. Wenn das System sowohl eth0 hat und eth1 und ich möchte ping
mit eth0 :
[root@server ~]# ping -I eth0 google.com
Oder verwenden Sie die Adresse auf der Schnittstelle und nehmen Sie an, dass die Schnittstelle 10.233.201.45 als IP lautet:
[root@server ~]# ping -I 10.233.201.45 google.com
Sie können auch ping
und geben Sie die IP-Version entweder als v4 oder v6 an:
[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com
Während Sie einen Host anpingen, werden Sie eine andere Ausgabe von ping
finden Ergebnisse, einschließlich der folgenden drei Beispiele.
Zielhost nicht erreichbar
Der wahrscheinlich beste Grund ist, dass es keine Route vom lokalen Hostsystem und zum gewünschten Zielhost gibt, oder ein entfernter Router meldet, dass er keine Route zum Zielhost hat.
Zeitüberschreitung bei Anfrage
Dieses Ergebnis bedeutet, dass innerhalb der Standardzeit von einer Sekunde oder der von Ihnen eingestellten Zeit, während Sie diesen Host anpingen, keine Echo-Antwortnachrichten empfangen wurden. Dies kann viele verschiedene Ursachen haben; Zu den häufigsten gehören Netzwerküberlastung, Ausfall der ARP-Anforderung, Paketfilterung/Firewall usw.
Unbekannter Host/Ping-Anfrage konnte Host nicht finden
Möglicherweise haben Sie den Hostnamen falsch geschrieben oder der Host existiert überhaupt nicht im Netzwerk.
Sie müssen 0 % Paketverlust für jeden ping
haben Ergebnis mit einer guten Latenz oder einer geringeren Reaktionszeit. Je nachdem, welches Übertragungsmedium (UTP, Glasfaserkabel, WLAN) Sie verwenden, unterscheidet sich Ihre Latenz.
[ Kostenloser Spickzettel:Holen Sie sich eine Liste von Linux-Dienstprogrammen und -Befehlen zum Verwalten von Servern und Netzwerken. ]
Wir freuen uns
Sie sollten diese Befehle und Beispiele in Ihre Routinen aufnehmen, wenn Sie Ihre eigenen Netzwerke konfigurieren und Fehler beheben. Wenn Sie diese Art von Artikel hilfreich fanden, kontaktieren Sie uns bitte und lassen Sie es uns wissen. Halten Sie auch Ausschau nach Teil zwei unserer Community-Befehlsliste. Der nächste sind 16 allgemeine Linux-Befehle, auf die Sie nicht verzichten können.