GNU/Linux >> LINUX-Kenntnisse >  >> Linux

17 beste Linux-Netzwerk- und Fehlerbehebungsbefehle für Anfänger

Netzwerkkonfiguration, Diagnose und allgemeine Linux-Fehlerbehebung sind wesentliche Teile der Systemadministration. Selbst für einen Entwickler, der mit Linux-Systemen arbeitet, Kenntnisse über Linux-Netzwerkbefehle ist ein zusätzlicher Vorteil.

Insbesondere wenn Sie ein DevOps-Ingenieur werden oder Teil von SRE werden möchten, ist es wichtig, alle Linux-Fehlerbehebungsbefehle zu kennen da sie Teil Ihrer täglichen Aktivitäten sein werden.

Dieser Beitrag behandelt die wichtigen Linux-Netzwerk- und Fehlerbehebungsbefehle die nativ in Linux-Systemen verfügbar sind.

Was sind die besten Linux-Netzwerk- und Fehlerbehebungsbefehle?

Es folgt die Liste der nativ verfügbaren Fehlerbehebungsbefehle.

Befehl Beschreibung
hostname Zur Überprüfung und Einstellung des Hostnamens des Servers.
host So erhalten Sie Host-DNS-Details
ping Überprüft, ob der Remote-Server über das ICMP-Protokoll erreichbar ist. Es zeigt auch die Umlaufzeit von Paketen.
curl Ein plattformübergreifendes Dienstprogramm, das zum Übertragen von Daten verwendet wird. Es kann zur Behebung mehrerer Netzwerkprobleme verwendet werden.
wget Dienstprogramm zum Herunterladen von Dateien. Kann zur Fehlerbehebung bei Proxy-Verbindungen und Konnektivität verwendet werden.
ip Ein Ersatz für ifconfig . Kann verwendet werden, um Informationen über Systemnetzwerkschnittstellen zu konfigurieren und abzurufen
arp Dienstprogramm zum Anzeigen und Verwalten des Arp-Cache.
ss/netstat Wird hauptsächlich verwendet, um die Verbindungen und die PID auf Ports und Unix-Sockets zu überprüfen.
tracerout e Dieses Dienstprogramm verwendet das ICMP-Protokoll und findet die Hops, die beim Lesen des Zielservers beteiligt sind. Es zeigt auch die Zeit an, die zwischen den Sprüngen vergeht.
mtr mtr ist eine Mischung aus ping und traceroute . Es bietet auch zusätzliche Informationen wie Zwischenhosts und Reaktionsfähigkeit.
dig Hilft Ihnen beim Abrufen der mit einem Domänennamen verknüpften DNS-Einträge.
nslookup Befehl ähnlich wie dig.
nc Dienstprogramm zum Debuggen von TCP/UDP-Sockets.
telnet Es kann verwendet werden, um die Remote-Konnektivität an Ports zu testen
route Hilft Ihnen, alle Routing-Tabelleninformationen zu erhalten
tcpdump Dieses Dienstprogramm hilft Ihnen, Netzwerkpakete zu erfassen und sie auf Netzwerkprobleme zu analysieren.
lsof Listen Sie alle geöffneten Dateien und die Prozessinformationen auf, die sie geöffnet haben

Lassen Sie uns jeden Befehl verstehen und sehen, wie wir ihn zur Fehlerbehebung unter Linux verwenden können.

Wichtiger Hinweis: Jeder in diesem Beitrag erwähnte Befehl/Dienstprogramm hat viele Optionen und Flags. Jeder Befehl hat eine Manpage und Sie können diese verwenden, um die Flags und Optionen zu identifizieren, die für Ihren Anwendungsfall erforderlich sind. Zum Beispiel für ip Befehl, können Sie ihn einfach man ip eingeben im Terminal, um alle Details zu diesem Befehl zu erhalten.

1. Hostname

Der Befehl Hostname wird verwendet, um den Hostnamen der Maschine anzuzeigen und den Hostnamen festzulegen.

hostname

Sie können den Befehl hostname verwenden, um einen neuen Hostnamen für die Maschine festzulegen. Zum Beispiel

sudo hostname temp.com

Wenn Sie den Hostnamen mit „hostname ”-Befehl, wenn Sie die Maschine neu starten, ändert sich der Hostname in den Namen, der in der Hostnamen-Datei angegeben ist (z. B.:/etc/hostname).

Wenn Sie also den Hostnamen dauerhaft ändern möchten, können Sie den /etc/hosts verwenden Datei oder relevante Hostname-Datei, die auf dem Server vorhanden ist.

  1. Für Ubuntu-Rechner können Sie ihn in /etc/hostname ändern Datei.
  2. Für RHEL, CentOS und Fedora können Sie es in /etc/sysconfig/network ändern Datei.

2. Gastgeber

Der Host-Befehl dient zum Reverse-Lookup von IP- oder DNS-Namen.

Wenn Sie beispielsweise ein DNS finden möchten, das mit einer IP verbunden ist, können Sie die Host-Befehle wie folgt verwenden.

host 8.8.8.8

Sie können auch umgekehrt vorgehen, um die mit dem Domänennamen verknüpfte IP-Adresse zu finden. Zum Beispiel

host devopscube.com

3. pingen

Das Ping-Netzwerkdienstprogramm wird verwendet, um zu prüfen, ob der Remote-Server erreichbar ist oder nicht. Es wird hauptsächlich zur Überprüfung der Konnektivität und Fehlerbehebung im Netzwerk verwendet.

Es enthält die folgenden Details.

  1. Gesendete und empfangene Bytes
  2. Gesendete, empfangene und verlorene Pakete
  3. Ungefähre Roundtrip-Zeit (in Millisekunden)

Der Ping-Befehl hat die folgende Syntax.

ping <IP or DNS>

Zum Beispiel

ping devopscube.com

Um die IP-Adresse zu pingen

ping 8.8.8.8

Wenn Sie die Ping-Ausgabe einschränken möchten, ohne Strg+C zu verwenden, können Sie das „-c“-Flag mit einer Zahl wie unten gezeigt verwenden.

ping -c 1 devopscube.com

4. kräuseln

Das Curl-Dienstprogramm wird hauptsächlich zum Übertragen von Daten von oder zu einem Server verwendet. Sie können es jedoch zur Fehlerbehebung im Netzwerk verwenden.

curl für die Fehlerbehebung im Netzwerk unterstützt Protokolle wie DICT , FILE , FTP , FTPS , GOPHER , HTTP , HTTPS , IMAP , IMAPS , LDAP , LDAPS , MQTT , POP3 , POP3S , RTMP , RTMPS , RTSP , SCP , SFTP , SMB , SMBS , SMTP , SMTPS , TELNET und TFTP

Beispiel:curl kann die Konnektivität auf Port 22 mit Telnet überprüfen.

curl -v telnet://192.168.33.10:22

Sie können die FTP-Konnektivität mit curl überprüfen.

curl ftp://ftptest.net 

Sie können auch Probleme mit der Webserver-Konnektivität beheben.

curl http://devopscube.com -I

5. wget

Das wget Der Befehl wird hauptsächlich zum Abrufen von Webseiten verwendet.

Sie können wget verwenden um auch Netzwerkprobleme zu beheben.

Beispielsweise können Sie Probleme mit Proxy-Server-Verbindungen mithilfe von wget beheben.

wget -e use_proxy=yes http_proxy=<proxy_host:port> http://externalsite.com

Sie können überprüfen, ob eine Website aktiv ist, indem Sie die Dateien abrufen.

wget www.google.com

6. ip (ifconfig)

ip Der Befehl wird verwendet, um Routen und Netzwerkschnittstellen anzuzeigen und zu manipulieren. ip Befehl ist die neuere Version von ifconfig . ifconfig funktioniert in allen Systemen, aber es ist besser, den Befehl ip anstelle von ifconfig zu verwenden.

Schauen wir uns ein paar Beispiele für ip an Befehl.

Netzwerkgeräte und -konfiguration anzeigen

ip addr

Sie können diesen Befehl mit Pipes und Grep verwenden, um eine detailliertere Ausgabe wie die IP-Adresse der eth0-Schnittstelle zu erhalten. Es ist sehr nützlich, wenn Sie an Automatisierungstools arbeiten, die erfordern, dass IP dynamisch abgerufen wird.

Der folgende Befehl ruft die IP-Adresse von eth0 ab Netzwerkschnittstelle.

ip a | grep eth0  | grep "inet" | awk -F" " '{print $2}'

Details zu einer bestimmten Schnittstelle abrufen

ip a show eth0

Sie können die Routing-Tabellen auflisten.

ip route
ip route list

7. arp

ARP (Address Resolution Protocol ) zeigt die Cache-Tabelle der IP-Adressen und MAC-Adressen lokaler Netzwerke, mit denen das System interagiert hat.

arp

Beispielausgabe,

[email protected]:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.3                 ether   52:54:00:12:35:03   C                     eth0
192.168.33.1             ether   0a:00:27:00:00:00   C                     eth1
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

8. ss (netstat)

Die ss Befehl ist ein Ersatz für netstat . Sie können immer noch netstat verwenden Befehl auf allen Systemen.

Mit ss Befehl erhalten Sie mehr Informationen als netstat Befehl. Der Befehl ss ist schnell, da er alle Informationen aus dem Kernel-Userspace erhält.

Schauen wir uns nun ein paar Verwendungen von ss an Befehl.

Alle Verbindungen auflisten

Die Datei „ss ” listet alle TCP-, UDP- und Unix-Socket-Verbindungen auf Ihrem Rechner auf.

[email protected]:~$ ss
Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port
u_str  ESTAB      0      0                    * 7594                  * 0
u_str  ESTAB      0      0      @/com/ubuntu/upstart 7605                  * 0  
u_str  ESTAB      0      0                    * 29701                 * 0
u_str  ESTAB      0      0      /var/run/dbus/system_bus_socket 29702                 * 0
tcp    ESTAB      0      400      172.31.18.184:ssh         1.22.167.31:61808

Die Ausgabe von ss Der Befehl wird groß sein, sodass Sie ” ss | less ” Befehl, um die Ausgabe scrollbar zu machen.

TCP-, UDP- und Unix-Sockets herausfiltern

Wenn Sie TCP-, UDP- oder UNIX-Socket-Details herausfiltern möchten, verwenden Sie die Flags „-t“, „-u“ und „-x“ mit dem Befehl „ss“. Es zeigt alle hergestellten Verbindungen zu den spezifischen Ports an. Wenn Sie sowohl verbundene als auch abhörende Ports auflisten möchten, verwenden Sie „a“ mit dem spezifischen Flag, wie unten gezeigt.

ss -ta
ss -ua
ss -xa

Alle Listening-Ports auflisten

Um alle lauschenden Ports aufzulisten, verwenden Sie das Flag „-l“ mit dem Befehl ss. Um einen bestimmten TCP-, UDP- oder UNIX-Socket aufzulisten, verwenden Sie die Flags „-t“, „-u“ und „-x“ mit „-l“, wie unten gezeigt.

[email protected]:~$ ss -lt
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
LISTEN     0      128                     *:ssh                      *:*
LISTEN     0      50                     :::http-alt                 :::*
LISTEN     0      50                     :::55857                   :::*
LISTEN     0      128                    :::ssh                     :::*
LISTEN     0      50                     :::53285                   :::*
[email protected]:~$

Alle Etablierten auflisten

Um alle eingerichteten Ports aufzulisten, verwenden Sie den state established wie unten gezeigt kennzeichnen.

ss -t -r state established

Um alle Sockets im Empfangszustand aufzulisten,

ss -t -r state listening

9. Traceroute

Wenn Sie keine traceroute haben Utility in Ihrem System oder Server, können Sie es aus dem nativen Repository installieren.

traceroute ist ein Dienstprogramm zur Fehlerbehebung im Netzwerk. Mit Traceroute können Sie die Anzahl der Hops ermitteln, die ein bestimmtes Paket benötigt, um das Ziel zu erreichen.

Zum Beispiel

traceroute google.com

Hier ist die Ausgabe.

traceroute to google.com (173.194.33.163), 30 hops max, 60 byte packets
 1  ec2-50-112-0-84.us-west-2.compute.amazonaws.com (50.112.0.84)  1.974 ms  1.895 ms  1.899 ms
 2  100.64.1.247 (100.64.1.247)  1.414 ms 100.64.1.137 (100.64.1.137)  1.127 ms 100.64.1.97 (100.64.1.97)  1.313 ms
 3  100.64.0.198 (100.64.0.198)  1.443 ms 100.64.0.62 (100.64.0.62)  2.160 ms 100.64.0.60 (100.64.0.60)  2.116 ms
10  66.249.94.214 (66.249.94.214)  6.313 ms  7.104 ms 209.85.249.34 (209.85.249.34)  5.986 ms
11  209.85.244.65 (209.85.244.65)  6.157 ms  6.341 ms  6.574 m.
.
12  sea09s18-in-f3.1e100.net (173.194.33.163)  6.302 ms  6.517 ms  6.071 ms
[email protected]:~$

Die obige Ausgabe zeigt die Hop-Anzahl (12), um google.com vom devopscube AWS ec2-Server zu erreichen.

10. mtr

Der mtr Dienstprogramm ist ein Netzwerkdiagnosetool zur Behebung von Netzwerkengpässen. Es kombiniert die Funktionalität von beiden ping und traceroute

Beispielsweise zeigt der folgende Befehl die traceroute Ausgabe in Echtzeit.

mtr google.com

Hier ist die Ausgabe.

mtr-Bericht

Sie können einen Bericht mit dem Flag –report generieren. Wenn Sie den mtr-Bericht ausführen, sendet er 10 Pakete an das Ziel und erstellt den Bericht.

mtr -n --report google.com

11. graben

Wenn Sie eine Aufgabe im Zusammenhang mit der DNS-Suche haben, können Sie „dig “-Befehl, um die DNS-Nameserver abzufragen.

Alle DNS-Einträge mit dig abrufen

Der folgende Befehl gibt alle DNS-Einträge und TTL-Informationen von twitter.com

zurück
dig twiter.com ANY

Verwenden Sie +short um die Ausgabe ohne Ausführlichkeit zu erhalten.

dig google.com ANY +short

Speziellen DNS-Eintrag mit dig abrufen

Zum Beispiel, wenn Sie den A record erhalten möchten Für den jeweiligen Domänennamen können Sie den Befehl dig verwenden. +short wird die Informationen ohne Ausführlichkeit bereitstellen

dig www.google.com A +short

Ebenso können Sie die anderen Datensatzinformationen separat mit den folgenden Befehlen abrufen.

dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short

Umgekehrter DNS-Lookup mit dig

Mit dem folgenden Befehl können Sie eine umgekehrte DNS-Suche mit dig durchführen. Ersetzen Sie 8.8.8.8 mit der erforderlichen IP

dig -x 8.8.8.8

12. nslookup

Nslookup Das Dienstprogramm (Name Server Lookup) wird verwendet, um die DNS-Einträge zu überprüfen. Es ähnelt dem Befehl dig.

Um die DNS-Einträge einer Domain zu überprüfen, können Sie den folgenden Befehl verwenden.

nslookup google.com

Sie können auch eine Rückwärtssuche mit der IP-Adresse durchführen.

nslookup 8.8.8.8

Um alle DNS-Einträge eines Domainnamens abzurufen, können Sie Folgendes verwenden.

nslookup -type=any google.com

Ebenso können Sie Datensätze wie mx abfragen , soa usw.

13. nc (netcat)

Der nc (netcat) command ist bekannt als die Schweizer Armee der Netzwerkkommandos.

Mit nc , können Sie die Konnektivität eines Dienstes überprüfen, der auf einem bestimmten Port ausgeführt wird.

Zum Beispiel, um zu prüfen, ob ssh Port geöffnet ist, können Sie den folgenden Befehl verwenden.

nc -v -n 192.168.33.10 22

netcat kann auch für die Datenübertragung über TCP/UDP und das Scannen von Ports verwendet werden.

Das Scannen von Ports wird in Cloud-Umgebungen nicht empfohlen. Sie müssen den Cloud-Anbieter auffordern, Port-Scanning-Vorgänge in Ihrer Umgebung durchzuführen.

14. telnet

Der Telnet-Befehl wird verwendet, um Fehler bei den TCP-Verbindungen an einem Port zu beheben.

Verwenden Sie den folgenden Befehl, um die Port-Konnektivität mit Telnet zu überprüfen.

telnet 10.4.5.5 22

15. Strecke

Die „route “-Befehl wird verwendet, um die Details der Routing-Tabelle für Ihr System abzurufen und zu manipulieren. Sehen wir uns einige Beispiele für den route-Befehl an.

Alle Routen auflisten

Führen Sie die „route“ aus ” Befehl ohne Argumente, um alle vorhandenen Routen in Ihrem System oder Server aufzulisten.

[email protected]:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ip-172-31-16-1. 0.0.0.0         UG    0      0        0 eth0
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
172.31.16.0     *               255.255.240.0   U     0      0        0 eth0
[email protected]:~$

Wenn Sie die vollständige Ausgabe in numerischer Form ohne Hostnamen erhalten möchten, können Sie das Flag „-n“ mit dem Befehl route verwenden.

[email protected]:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.16.1     0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.31.16.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0
[email protected]:~$

16. tcpdump

Der tcpdump Der Befehl wird hauptsächlich zur Fehlerbehebung im Netzwerkverkehr verwendet.

Hinweis: Um die Ausgabe von tcpdump zu analysieren Der Befehl erfordert etwas Einarbeitung, daher würde es den Rahmen dieses Artikels sprengen, ihn zu erklären.

tcpdump Der Befehl arbeitet mit den Netzwerkschnittstellen des Systems. Sie müssen also Administratorrechte verwenden, um den Befehl auszuführen.

Alle Netzwerkschnittstellen auflisten

Verwenden Sie den folgenden Befehl, um alle Schnittstellen aufzulisten.

sudo  tcpdump --list-interfaces

Pakete auf spezifischer Schnittstelle erfassen

Um den Dump von Paketen auf einer bestimmten Schnittstelle zu erhalten, können Sie den folgenden Befehl verwenden.

Hinweis: drücken Sie ctrl + c um die Erfassung der Pakete zu stoppen.

sudo tcpdump -i eth0

Um die Paketerfassung einzuschränken, können Sie den -c verwenden Flagge mit der Nummer.

Zum Beispiel

sudo tcpdump -i eth0 -c 10

Pakete auf allen Schnittstellen erfassen

Um Pakete auf allen Schnittstellen zu erfassen, verwenden Sie any wie unten gezeigt kennzeichnen.

sudo tcpdump -i any

17. lsof

lsof ist ein Befehl, der bei der täglichen Linux-Fehlerbehebung verwendet wird. Dieser Befehl ist gleichermaßen wichtig für jeden, der mit Linux-Systemen arbeitet.

Um alle geöffneten Dateien aufzulisten, führen Sie lsof aus Befehl.

lsof

Einer der häufigsten Fehler von Entwicklern und DevOps-Ingenieuren ist „Fehler bei der Bindung fehlgeschlagen:Adresse wird bereits verwendet “. Sie können die einem Port zugeordnete Prozess-ID mit dem folgenden Befehl finden. Dann können Sie den Prozess beenden, um den Port freizugeben.

lsof -i :8080

Dienstprogramme zur Fehlerbehebung bei Netzwerken von Drittanbietern

Es sind weitere Befehlszeilen-Dienstprogramme zur Netzwerkfehlerbehebung von Drittanbieterlösungen verfügbar.

Sie müssen sie separat installieren und für Ihre Fehlerbehebungszwecke verwenden. Aus Gründen der Sicherheitskonformität erlaubt Ihnen nicht jede Organisation, dies zu tun. Wenn Sie jedoch die Option haben, Tools von Drittanbietern zu verwenden, können Sie diese erkunden.

Schlussfolgerung

In diesem Artikel haben wir die wichtigen Linux-Befehlszeilenprogramme für Netzwerkfehlerbehebung und -konfiguration behandelt

Wenn Sie mit Systemadministration, DevOps oder SRE-Rollen beginnen, ist es wichtig, sich mit diesen Dienstprogrammen vertraut zu machen, um die Projekte zu unterstützen, an denen Sie arbeiten.

Jedes Dienstprogramm hat viele Funktionalitäten und Sie können weitere Informationen finden, um Ihre Anforderungen zu erfüllen.

Wenn Sie der Meinung sind, dass wir wichtige Befehle verpasst haben, teilen Sie uns dies im Kommentarbereich mit.

Wenn Sie Shell-Skripting lernen möchten, lesen Sie auch unseren Leitfaden zum Erlernen von Shell-Skripting. Wenn Sie Entwickler sind, lesen Sie meinen Leitfaden zu Linux-Befehlen, die jeder Entwickler kennen sollte.


Linux
  1. 10 Linux-Befehls-Tutorials für Anfänger und Experten

  2. Linux-Hostname-Befehls-Tutorial für Anfänger (5 Beispiele)

  3. Linux-Befehle – Übersicht und Beispiele

  4. Linux-Befehle:jobs, bg und fg

  5. Die wichtigsten grundlegenden Linux-Befehle für Anfänger

Linux pushd und popd Command Tutorial für Anfänger (3 Beispiele)

Linux ss Command Tutorial für Anfänger (8 Beispiele)

Linux-Suchbefehl für Anfänger (8 Beispiele)

16 praktische Beispiele für Linux LS-Befehle für Anfänger

Die 40 nützlichen Linux-Server-Befehle für Anfänger und Profis

Tutorials und Beispiele für Linux Head-Befehle für Anfänger