Wie Verwenden Sie netstat unter Linux

0
439
Fatmawati Achmad Zaenuri/Shutterstock

Die Linux netstat-Befehl haben Sie eine Fundgrube von Informationen über Ihr Netzwerk-verbindungen, die ports, die verwendet werden, und die Prozesse, die Sie verwenden. Erfahren Sie, wie es zu benutzen.

Ports, Prozesse und Protokolle

Netzwerk-sockets können entweder verbunden oder wartet auf eine Verbindung. Von den verbindungen Netzwerk-Protokolle wie TCP (Transport Control Protocol) – oder User Datagram Protocol UDP. Sie verwenden Internet-Protokoll-Adressen und Netzwerk-ports, verbindungen zu schaffen.

Das Wort sockets kann zaubern Bilder von einem physischen Anschluss für eine Leitung oder Kabel, aber in diesem Zusammenhang, ein socket ist ein software-Konstrukt verwendet, um ein Ende einer Datenverbindung.

Steckdosen haben zwei Zustände: entweder sind Sie miteinander verbunden und erleichtern eine kontinuierliche Kommunikation im Netzwerk, oder Sie sind auf eine eingehende Verbindung wartet, um Sie zu verbinden. Es gibt andere Staaten, wie der Staat, wenn ein socket ist auf halbem Weg durch herstellen einer Verbindung auf einem remote-Gerät, sondern dass die Transienten Zustände beiseite, man kann sich eine Buchse, die entweder verbunden oder warten (die oft als hören).

Der socket wird als server bezeichnet, und der socket, der eine Verbindung anfordert mit dem socket aufgerufen wird, ein client. Diese Namen haben nichts zu tun mit hardware-oder computer-Rollen. Sie definieren einfach die Rolle von jeder Steckdose, an jedem Ende der Verbindung.

Der netstat-Befehl können Sie entdecken, welche buchsen miteinander verbunden sind und die Steckdosen sind zu hören. Bedeutung, es sagt Ihnen, welche ports verwendet werden und welche Prozesse Sie benutzen. Es kann Ihnen zeigen, routing-Tabellen und Statistiken über Ihre Netzwerk-Schnittstellen-und multicast-verbindungen.

Die Funktionalität von netstat repliziert wurde im Laufe der Zeit in verschiedenen Linux-Dienstprogramme, wie z.B. ip und ss. Es ist immer noch lohnt sich zu wissen, dieser Urvater aller Netzwerk-Analyse-Befehle, denn es ist auf allen Linux-und Unix-ähnlichen Betriebssystemen und sogar auf Windows und Mac.

Hier ist, wie es zu benutzen, komplett mit Beispiel-Befehlen.

Auflistung Aller Steckdosen

-A (all) option netstat zeigen Sie alle angeschlossenen und warten sockets. Mit diesem Befehl haftet produzieren eine lange Liste, so dass wir Rohres in weniger.

netstat-a | less

Die Auflistung enthält TCP (IP), TCP6 (IPv6), – und UDP-sockets.

Die wrap-around-in das terminal-Fenster macht es ein wenig schwierig zu sehen, was Los ist. Hier ein paar Abschnitte aus, die Liste:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
.
.
.
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Pfad
unix 24 [ ] DGRAM 12831 /run/systemd/journal/dev-log
unix 2 [ ACC ] STREAM LISTENING 24747 @/tmp/dbus-zH6clYmvw8
unix 2 [ ] DGRAM 26372 /run/user/1000/systemd/notify
unix 2 [ ] DGRAM 23382 /run/user/121/systemd/notify
unix 2 [ ACC ] SEQPACKET HÖREN 12839 /run/udev/control

Das “Aktive ” Internet” Abschnitt enthält eine Liste der angeschlossenen externen verbindungen und lokalen sockets hören für remote-Verbindung anfordert. Das heißt, es listet die Netzwerk-verbindungen, die sind (oder werden), das eingerichtet wurde, um externe Geräte.

Die “UNIX-Domäne” listet die angeschlossenen und hören den internen verbindungen. In anderen Worten, es listet die verbindungen, die geschaffen wurden, innerhalb Ihres Computers zwischen verschiedenen Anwendungen, Prozesse und Elemente des Betriebssystems.

Die “Aktive Internet -” Spalten sind:

  • Proto: Das Protokoll von dieser Buchse (Z. B. TCP oder UDP).
  • Recv-Q: Die receive queue. Dies sind die eingehenden bytes, die empfangen wurden und im Puffer vorhanden ist, wartet der lokale Prozess, der die Verwendung dieser Verbindung zu Lesen und zu konsumieren.
  • Send-Q: Die send-queue. Dies zeigt die bytes, die bereit sind, gesendet zu werden, aus der send-queue.
  • Lokale Adresse: Die Adressdaten des lokalen Ende der Verbindung. Der Standardwert für den Befehl netstat, um zu zeigen, den lokalen Hostnamen für die Adresse und den Namen des Dienstes für den port.
  • Ausländische Adresse: Die Adresse und port-Nummer des entfernten Ende der Verbindung.
  • Zustand: Der Zustand des lokalen socket. Für UDP-sockets, dies ist in der Regel leer. Finden Sie in der state-Tabelle, unten.

Für TCP-verbindungen, die state-Wert kann einer der folgenden sein :

  • HÖREN: Server-Seite nur. Der socket wartet auf eine Verbindungsanforderung.
  • SYN-sent: Client-Seite nur. Diese Buchse hat einen Anschluss beantragen und warten, um zu sehen, ob es akzeptiert wird.
  • SYN-RECEIVED: – Server-Seite nur. Diese Buchse wird für eine Verbindung wartet Bestätigung nach der Annahme einer Verbindungsanfrage.
  • GEGRÜNDET: Server und clients. Eine funktionierende Verbindung zwischen dem server und dem client, so dass Daten übertragen werden zwischen den beiden.
  • FIN-WAIT-1: Server und clients. Diese Buchse ist warten auf ein connection termination request von der remote-Buchse, oder für eine Bestätigung einer Verbindung termination request, das zuvor gesendet, von diesem sockel.
  • FIN-WAIT-2: Server und clients. Diese Buchse ist warten auf ein connection termination request von der remote-Buchse.
  • CLOSE-WAIT: Server und client. Diese Buchse ist warten auf ein connection termination request von der lokalen Benutzer.
  • GESCHLOSSEN: Server und clients. Diese Buchse ist warten auf ein connection termination request Quittierung von der remote-Buchse.
  • LAST-ACK: Server und client. Dieses socket wartet auf eine Bestätigung des connection termination request an die remote-Buchse.
  • TIME-WAIT: Server und clients. Diese Buchse gesendet, eine Bestätigung an die remote-Buchse um ihn wissen zu lassen, dass es erhielt die remote-Buchse der Kündigung verlangen. Es ist jetzt zu warten, um sicherzustellen, dass die Bestätigung empfangen wurde.
  • GESCHLOSSEN: Es gibt keine Verbindung, so dass der sockel wurde beendet.

Die “Unix-Domäne” Spalten sind:

  • Proto: Das Protokoll von dieser Buchse. Es wird “unix”.
  • RefCnt: Referenzzähler. Die Anzahl der angeschlossenen Prozesse die Verbindung zu diesem socket.
  • Flags: Dieser ist normalerweise so eingestellt, ACC , vertritt SO_ACCEPTON, also der socket wartet auf eine Verbindungsanforderung. SO_WAITDATA gezeigt, wie die W, bedeutet, dass es Daten, die darauf warten, gelesen zu werden. SO_NOSPACE, gezeigt als N, d.h. es ist kein Raum zum schreiben von Daten an der Steckdose (D. H. die sende-Puffer voll ist).
  • Typ: Der socket-Typ. Finden Sie in der Typ-Tabelle unten.
  • Zustand: Der Zustand des Sockets. Finden Sie in der state-Tabelle unten.
  • I-Node: Das Dateisystem inode verknüpft mit dieser Buchse.
  • Pfad: Die Datei system Pfad zum socket.

Die Unix-domain-socket-Typ kann einer der folgenden sein:

  • DGRAM: Das socket wird benutzt im Datagramm-Modus, mit Nachrichten fester Länge. Datagramme sind weder garantiert zuverlässige, sequenziert, noch unduplicated.
  • STREAM: Diese Buchse ist ein stream-socket. Dies ist das alltägliche “normale” Art der socket-Verbindung. Diese Steckdosen werden entwickelt, um zuverlässige sequenziert (in-order) die Lieferung der Pakete.
  • RAW: Diese Buchse wird verwendet als raw-socket. Raw-sockets arbeiten auf der Netzwerkebene des OSI-Modells und nicht-TCP-und UDP-Header aus der transport-Ebene.
  • RDM: Diese Buchse befindet sich an einem Ende einer zuverlässig zugestellten Nachrichten Verbindung.
  • SEQPACKET: Diese Buchse ist als sequentielle packet-socket, was ist eine weitere Möglichkeit der Bereitstellung von zuverlässigen, sequenziert, und unduplicated Päckchen Versand.
  • PAKET: Raw Anschluss-Buchse. Packet sockets werden zum empfangen oder senden von raw-Pakete an den device-Treiber (D. H., Daten-link-layer) – Ebene des OSI-Modells.

Die Unix-domain-socket-Status kann einer der folgenden sein:

  • FREI: Diese Buchse ist nicht zugeordnet.
  • HÖREN: Dieses socket wartet auf eingehende Verbindungsanfragen.
  • ANSCHLUSS: Diese Buchse ist in den Prozess der Verbindung.
  • VERBUNDEN: EINE Verbindung wurde hergestellt und der socket zum empfangen und übertragen der Daten.
  • TRENNEN: Die Verbindung wird in der Prozess beendet wird.

Wow, das sind eine Menge Informationen! Viele von netstat Optionen verfeinern Sie die Ergebnisse in die eine oder andere Weise, aber Sie ändern sich nicht die Inhalte zu viel. Lassen Sie uns nehmen einen Blick.

Listing Sockets vom Typ

Der Befehl netstat-a kann mehr Informationen liefern, als Sie benötigen, um zu sehen. Wenn Sie nur wollen oder müssen, um zu sehen, die TCP-sockets, können Sie die Option-t (TCP) – option, um die Anzeige einschränken, um nur TCP-sockets.

netstat -an | weniger

Die Darstellung ist stark reduziert. Die paar Steckdosen, die aufgeführt sind, werden alle TCP-sockets.

Die-u (UDP) und -x (UNIX) – Optionen Verhalten sich ähnlich, wobei die Ergebnisse der socket-Typ auf der Kommandozeile angegeben. Hier ist die-u (UDP) – option verwenden:

netstat -au | weniger

Nur UDP-sockets aufgeführt sind.

Listing Sockets durch den Staat

Um zu sehen, die buchsen sind in der mithörende oder wartende Zustand, verwenden Sie die -l (hören) option.

netstat -l | less

Die sockets, die aufgeführt sind diejenigen, die in den Wartezustand.

Dies kann kombiniert werden mit der Option-t (TCP -, – u (UDP) und -x (UNIX) Optionen weiter zu Hause in die Steckdosen, die von Interesse sind. Schauen wir uns für das hören von TCP-sockets:

netstat -lt | weniger

Jetzt sehen wir, nur die TCP-listening-sockets.

Netzwerk-Statistiken nach Protokoll

Sehen Sie die Statistiken für ein Protokoll, die-s (Statistik) option und pass in die -t (TCP), -u (UDP), oder -x – (UNIX -) Optionen. Wenn Sie nur die -s (Statistik) – option auf Ihrer eigenen, sehen Sie Statistiken für alle Protokolle. Schauen wir uns die Statistiken für das TCP-Protokoll.

netstat -st | weniger

Eine Sammlung von Statistiken, die für die TCP-verbindungen angezeigt, die in weniger.

Zeigt Prozess-Namen und PIDs

Es kann nützlich sein, um zu sehen, die Prozess-ID (PID) des Prozesses mit einem socket, zusammen mit dem Namen des Prozesses. -P (Programm) – option die genau das tut. Mal sehen, was die PIDs und Prozess-Namen sind für die Prozesse, die mittels TCP-socket, der in den Wartezustand. Wir sudo verwenden, um sicherzustellen, dass wir erhalten alle Informationen, die verfügbar ist, einschließlich aller Informationen, die normalerweise root-Rechte erfordern.

sudo netstat -p -an

Hier ist die Ausgabe in eine formatierte Tabelle:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 6927/systemd-resolv
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 751/sshd
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 7687/cupsd
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1176/master
tcp6 0 0 [::]:ssh [::]:* LISTEN 751/sshd
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN 7687/cupsd
tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 1176/master

Wir haben eine zusätzliche Spalte “PID/program name.” In dieser Spalte wird die PID und der name des Prozesses, die über die jeweiligen buchsen.

Auflistung Numerischen Adressen

Ein weiterer Schritt, die wir ergreifen können, zu entfernen, einige Mehrdeutigkeit ist für die Anzeige der lokalen und remote-Adressen als IP-Adressen anstelle von Ihr gelöst domain-und Hostnamen. Wenn wir die Option-n (numeric) option ist, die IPv4-Adressen angezeigt werden in dotted-decimal-format:

sudo netstat-an | weniger

Die IP-Adressen angezeigt werden als numerische Werte. Die port-Nummern werden auch angezeigt, getrennt durch einen Doppelpunkt ” : “von der IP-Adresse.

Eine IP-Adresse 127.0.0.1 zeigt, dass der socket gebunden ist an die loopback-Adresse des lokalen Computers. Sie können denken, der eine IP-Adresse von 0.0.0.0 bedeutet für die “default route” für lokale Adressen “(“any-IP-Adresse” für ausländische Adressen. IPv6-Adressen angezeigt, die als “::” sind auch alle zero-Adressen.

Die aufgeführten ports kann leicht überprüft werden, um zu sehen, welche Ihrer üblichen Verwendungsweise ist:

  • 22: das ist der Secure Shell (SSH) – listening-port.
  • 25: Das Simple Mail Transfer Protocol (SMTP) – listening-port.
  • 53: Das ist das Domain Name System (DNS) – listening-port.
  • 68: Dies ist das Dynamic Host Configuration Protocol (DHCP) – listening-port.
  • 631: Dies ist das Common UNIX Printing System (CUPS) – listening-port.

RELATED: Was ist der Unterschied Zwischen 127.0.0.1 und 0.0.0.0?

Anzeigen der Routing-Tabelle

Die -r (Strecke) zeigt die kernel-routing-Tabelle.

sudo netstat -r

Hier ist die Ausgabe in eine nette Tabelle:

Kernel IP-routing-Tabelle
Destination Gateway Genmask Flags MSS Fenster irtt Iface
Standard-Stärke.router 0.0.0.0 UG 0 0 0 enp0s3
link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3

Und, hier ist, was die Spalten bedeuten:

  • Ziel: Das Ziel-Netzwerk oder Ziel-host-Gerät (wenn das Ziel nicht in einem Netzwerk).
  • Gateway: Die gateway-Adresse. Ein Sternchen “*” erscheint hier, wenn Sie die gateway-Adresse ist nicht festgelegt.
  • Genmask: Die Subnetzmaske für die route.
  • Flags: Siehe die flags Tabelle unten.
  • MSS: Standard-Segment Maximale Größe für TCP-verbindungen über diese route—dies ist die größte Menge an Daten, die empfangen werden kann in einem TCP-segment.
  • Fenster: Die Standard-Fenstergröße für die TCP-verbindungen über diese route, angibt, die Anzahl der Pakete, die übertragen werden können und empfangen, bevor der Puffer voll ist. In der Praxis werden die Pakete, die verbraucht werden, durch die empfangende Anwendung.
  • irtt: Den Ersten Round-Trip-Zeit. Dieser Wert wird durch den kernel, um dynamische Anpassungen der TCP-Parameter für remote-verbindungen, die langsam reagieren.
  • Iface: Das Netzwerk-interface aus, das die gesendeten Pakete über diese route übertragen werden.

Der flags-Wert kann einer der folgenden sein:

  • U: Die route ist bis.
  • H: Ziel ist ein host und das einzige Ziel, möglich auf dieser Strecke.
  • G: das gateway Verwenden.
  • R: Wiedereinsetzung der route für dynamisches routing.
  • D: Dynamisch installiert den routing-daemon.
  • M: Geändert durch den routing-daemon, wenn er erhielt eine Internet Control Message Protocol (ICMP) – Paket.
  • A: addrconf Installiert, die automatische DNS-und DHCP-config-Datei-generator.
  • C: Cache-Eintrag.
  • !: Reject-route.

Finden Sie den Port durch einen Prozess

Wenn wir leiten Sie die Ausgabe von netstat durch grep, wir können die Suche nach einem Prozess mit Namen und den port identifizieren Sie nutzt. Wir verwenden den-a (alle), -n (numeric) und -p (Programm -) Optionen, die zuvor verwendet wurden, und suchen Sie nach “sshd.”

sudo netstat -anp | grep “sshd”

grep findet die Ziel-string, und wir sehen, dass der sshd-daemon-port 22.

Natürlich, wir können dies auch in umgekehrter Richtung. Wenn wir suchen, für “:22” können wir herausfinden, welcher Prozess diesen port, falls vorhanden.

sudo netstat -anp | grep “:22”

Dieses mal grep findet die “:22” target string, und wir sehen, dass der Prozess mit diesem port ist der sshd-daemon, Prozess-ID 751.

Liste der Netzwerk-Schnittstellen

Die-i – (Schnittstellen -) option, zeigt eine Tabelle des Netzwerk-interfaces mit netstat entdecken können.

sudo netstat -i

Hier ist die Ausgabe in einem besser lesbaren Weise:

Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU
lo 65536 30175 0 0 0 30175 0 0 0 LRU

Dies ist, was die Spalten bedeuten:

  • Iface: der name Der Schnittstelle. Die enp0s3-Schnittstelle ist die Netzwerkschnittstelle zur Außenwelt, und die lo-Schnittstelle das loopback-interface. Der loopback-Schnittstelle können Prozesse miteinander kommunizieren innerhalb der computer über Netzwerk-Protokolle, auch wenn der computer nicht an ein Netzwerk angeschlossen ist.
  • MTU: Die Maximum Transmission Unit (MTU). Dies ist die größte “Paket” gesendet werden kann. Es besteht aus einem header mit routing-und Protokoll-flags und andere Metadaten, plus der Daten, die tatsächlich transportiert wird.
  • RX-OK: Die Anzahl der empfangenen Pakete, die ohne Fehler.
  • RX-FEHLER: Die Anzahl der empfangenen Pakete, die mit Fehlern. Wir wollen, dass dies so gering wie möglich sein.
  • RX-DRP: Die Anzahl der Pakete, die fallen gelassen (d.h. verloren). Wir wollen auch, dass dieses so niedrig wie möglich.
  • RX-OVR: Anzahl der Pakete verloren gehen, die durch überläufe beim Empfang. Dies bedeutet normalerweise, dass der Puffer voll war und konnte nicht akzeptieren, dass keine Daten mehr, aber mehr Daten empfangen und mussten entsorgt werden. Die niedriger diese Zahl, desto besser, und keine ist perfekt.
  • TX-OK: Die Anzahl der übertragenen Pakete, die ohne Fehler.
  • RX-FEHLER: Die Anzahl der übertragenen Pakete, die mit Fehlern. Wir wollen, dass diese zu null werden.
  • RX-DRP: Die Anzahl der Pakete gelöscht, wenn die übertragung. Im Idealfall sollte dieser Wert null sein.
  • RX-OVR: Die Anzahl der Pakete verloren gehen, die durch überläufe bei der übertragung. Dies bedeutet in der Regel die sende-Puffer voll war und konnte nicht akzeptieren, dass keine Daten mehr, aber mehr Daten bereit war, übertragen werden und mussten verworfen werden.
  • Flg: Flags. Finden Sie die Flaggen der Tabelle unten.

Die Fahnen sind die folgenden:

  • B: Eine broadcast-Adresse verwendet wird.
  • L: Diese Schnittstelle ist ein loopback-device.
  • M: Alle Pakete werden empfangen (D. H., in den promiscuous-Modus). Nichts ist gefiltert oder verworfen.
  • O: ARP (Address Resolution Protocol) ausgeschaltet ist für dieses interface.
  • P: Dies ist ein Punkt-zu-Punkt – (PPP -) Verbindung.
  • R: Die Schnittstelle wird ausgeführt.
  • U: Das interface up ist.

Liste Multicast-Gruppen-Mitgliedschaften

Einfach ausgedrückt, eine multicast-übertragung ermöglicht, dass ein Paket nur einmal gesendet, unabhängig von der Anzahl der Empfänger. Für Dienste wie video-streaming, zum Beispiel, dies erhöht die Effizienz des Absenders Sicht durch eine enorme Menge.

Die -g (- Gruppen) option netstat-Liste der multicast-Gruppe die Mitgliedschaft der Steckdosen auf jeder Schnittstelle.

sudo netstat -g

Die Spalten sind ganz einfach:

  • Interface: der name Der Schnittstelle, über die die Buchse übertragen wird.
  • RefCnt: Der Referenz-count, die die Anzahl der Prozesse an die Buchse angeschlossen.
  • Gruppe: Der name oder die id der multicast-Gruppe.

Die New Kids on the Block

Die route, ip, ifconfig und ss-Kommandos kann eine Menge von dem, was netstat ist in der Lage, Sie. Sie sind alle sehr, Befehle und lohnt sich.

Wir konzentrieren uns auf netstat, denn es ist universell verfügbar, unabhängig davon, welche Unix-artigen Betriebssystemen Sie arbeiten, auch das obskure lieben.

LESEN SIE WEITER

  • › Wie Stream Daytona 500 Ohne Kabel
  • “Was Bedeutet “HMU” Bedeuten, und Wie Verwenden Sie Es?
  • › So Aktivieren Sie eine Klick zum Öffnen von Symbolen auf der Windows-10
  • › So Beheben Sie Häufige Probleme mit Apple AirPods
  • “Wie “Verschieben” oder “Kopieren”, um Windows 10 das Kontext-Menü