Verwendung von netstat-Befehlen unter Linux

Erfahren Sie, was der Befehl netstat und einige Beispiele in Echtzeit sind.


netstat (Netzwerkstatistik) ist ein Befehlszeilentool, das Netzwerkverbindungen (sowohl eingehende als auch ausgehende), Routingtabellen und eine Reihe von Netzwerkschnittstellenstatistiken anzeigt.

Es ist unter Linux-, Unix-ähnlichen und Windows-Betriebssystemen verfügbar. netstat ist leistungsstark und kann ein nützliches Tool zur Behebung von Netzwerkproblemen und zur Überprüfung der Verbindungsstatistiken sein.

Wenn Sie netstat -help eingeben, erhalten Sie die folgenden Verwendungsrichtlinien.

[[E-Mail geschützt] ~] # netstat -help
Verwendung: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [Verzögerung]

-r, –route display routing table
-I, –interfaces = Schnittstellentabelle für anzeigen
-i, –interfaces zeigen die Schnittstellentabelle an
-g, –groups zeigen Multicast-Gruppenmitgliedschaften an
-s, –statistics zeigt Netzwerkstatistiken an (wie SNMP)
-M, –masquerade zeigt maskierte Verbindungen an

-v, –verbose sei ausführlich
-W, –weit IP-Adressen nicht abschneiden
-n, –numeric lösen keine Namen auf
–Numerische Hosts lösen keine Hostnamen auf
–Numerische Ports lösen keine Portnamen auf
–Numerische Benutzer lösen keine Benutzernamen auf
-N, –symbolische Hardware-Namen auflösen
-e, –extend zeigt andere / weitere Informationen an
-p, –Programme zeigen den PID / Programmnamen für Sockets an
-o, –timer zeigen Timer an
-c, – kontinuierliche fortlaufende Auflistung

-l, – Listening Display Listening Server Sockets
-a, – alle Sockel anzeigen (Standard: verbunden)
-F, –fib Anzeige Forwarding Information Base (Standard)
-C, –cache zeigt Routing-Cache anstelle von FIB an
-Z, –context zeigt den SELinux-Sicherheitskontext für Sockets an

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Verwenden Sie ‘-6 | -4’ oder ‘-A’ oder ‘-‘; Standard: inet
Liste möglicher Adressfamilien (die das Routing unterstützen):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[E-Mail geschützt] ~] #

Lassen Sie mich Ihnen einige Beispiele für den Befehl zeigen. Die folgenden Tests wurden unter RHEL / CentOS durchgeführt, aber ich sehe keinen Grund, nicht an einer anderen Distribution wie Ubuntu zu arbeiten.

Verbindung hergestellt

Wenn Sie nach allen vom Server hergestellten Verbindungen suchen.

[[E-Mail geschützt] ~] # netstat -natu | grep ‘ESTABLISHED’
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 GEGRÜNDET
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 GEGRÜNDET
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 ESTABLISHED
[[E-Mail geschützt] ~] #

Wenn Sie viele Verbindungen hergestellt haben und nach einer der IPs suchen möchten, können Sie ein anderes grep verwenden.

[[E-Mail geschützt] ~] # netstat -natu | grep ‘ESTABLISHED’ | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 ESTABLISHED
[[E-Mail geschützt] ~] #

Verbindung hören

Nehmen wir an, Sie haben einen Dienst gestartet, der eine bestimmte IP: Port abhören soll. Dies ist praktisch, um dies zu überprüfen.

[[E-Mail geschützt] ~] # netstat -an | grep ‘LISTEN’
tcp 0 0 127.0.0.1:25 0.0.0.0:* HÖREN
tcp 0 0 0.0.0.0:111 0.0.0.0:* HÖREN
tcp 0 0 0.0.0.0:22 0.0.0.0:* HÖREN
tcp6 0 0 ::: 111 ::: * HÖREN
tcp6 0 0 ::: 80 ::: * HÖREN
tcp6 0 0 ::: 22 ::: * HÖREN
[[E-Mail geschützt] ~] #

Oder Sie können das Argument -l verwenden, um alle Listening-Sockets anzuzeigen.

[[E-Mail geschützt] ~] # netstat -l
Aktive Internetverbindungen (nur Server)
Proto Recv-Q Send-Q Lokale Adresse Fremdadressenstatus
tcp 0 0 localhost: smtp 0.0.0.0:* HÖREN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* HÖREN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* HÖREN
tcp6 0 0 [::]: sunrpc [::]: * LISTEN
tcp6 0 0 [::]: Webcache [::]: * LISTEN
tcp6 0 0 [::]: ssh [::]: * LISTEN
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Aktive UNIX-Domänensockets (nur Server)
Proto RefCnt Flags Typ Status I-Knoten Pfad
Unix 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
Unix 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
Unix 2 [ACC] SEQPACKET LISTENING 12813 / run / udev / control
Unix 2 [ACC] STREAM LISTENING 17542 public / pickup
Unix 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
Unix 2 [ACC] STREAM LISTENING 17546 public / cleanup
Unix 2 [ACC] STREAM LISTENING 15605 /var/lib/gssproxy/default.sock
Unix 2 [ACC] STREAM LISTENING 12706 / run / systemd / private
unix 2 [ACC] STREAM LISTENING 17549 public / qmgr
Unix 2 [ACC] STREAM LISTENING 17571 public / flush
Unix 2 [ACC] STREAM LISTENING 17553 privat / tlsmgr
unix 2 [ACC] STREAM LISTENING 17586 public / showq
Unix 2 [ACC] STREAM LISTENING 17556 privat / neu schreiben
Unix 2 [ACC] STREAM LISTENING 17559 privat / abprallen
Unix 2 [ACC] STREAM LISTENING 17562 privat / aufschieben
Unix 2 [ACC] STREAM LISTENING 17565 privat / trace
Unix 2 [ACC] STREAM LISTENING 17568 privat / verifizieren
Unix 2 [ACC] STREAM LISTENING 17574 privat / proxymap
Unix 2 [ACC] STREAM LISTENING 17577 privat / proxywrite
Unix 2 [ACC] STREAM LISTENING 17580 privat / smtp
Unix 2 [ACC] STREAM LISTENING 17583 privat / Relais
Unix 2 [ACC] STREAM LISTENING 17589 privat / Fehler
Unix 2 [ACC] STREAM LISTENING 17592 privat / erneut versuchen
Unix 2 [ACC] STREAM LISTENING 17595 privat / verwerfen
Unix 2 [ACC] STREAM LISTENING 17598 privat / lokal
Unix 2 [ACC] STREAM LISTENING 17601 privat / virtuell
Unix 2 [ACC] STREAM LISTENING 17604 private / lmtp
Unix 2 [ACC] STREAM LISTENING 17607 privat / Amboss
Unix 2 [ACC] STREAM LISTENING 17610 privat / scache
Unix 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[E-Mail geschützt] ~] #

Nutzen Sie grep, um die Ergebnisse zu filtern.

Von PID verwendete Portnummer

Sie wissen, dass Ihre Anwendung gestartet wurde und die PID (Process Identifier) ​​kennt, sind sich jedoch nicht sicher, welche Portnummer sie verwendet. Das folgende Beispiel bezieht sich auf PID 3937

[[E-Mail geschützt] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * HÖREN 3937 / httpd
Unix 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[E-Mail geschützt] ~] #

Wie Sie sehen können, wird Port 80 für PID 3937 verwendet.

Alle Protokollstatistiken

Haben Sie häufige Verbindungsabbrüche aufgrund eines verworfenen Pakets? Das Argument -s zeigt Ihnen allgemeine Statistiken an, in denen Sie auf verworfene Paketnachrichten achten können.

[[E-Mail geschützt] ~] # netstat -s
Ip:
731422 insgesamt empfangene Pakete
0 weitergeleitet
0 eingehende Pakete verworfen
731399 eingehende Pakete zugestellt
787732 Anfragen gesendet
16 wegen fehlender Route fallen gelassen
Icmp:
5277 ICMP-Nachrichten empfangen
ICMP-Nachricht mit 120 Eingaben fehlgeschlagen.
InCsumErrors: 6
ICMP-Eingabehistogramm:
Ziel nicht erreichbar: 193
Zeitüberschreitung auf der Durchreise: 16
Echoanfragen: 5060
Echo antwortet: 2
9355 ICMP-Nachrichten gesendet
0 ICMP-Nachrichten fehlgeschlagen
ICMP-Ausgabehistogramm:
Ziel nicht erreichbar: 4295
Echoantworten: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 aktive Verbindungsöffnungen
35226 passive Verbindungsöffnungen
1693 fehlgeschlagene Verbindungsversuche
645 Verbindungsrücksetzungen empfangen
2 Verbindungen hergestellt
646705 Segmente erhalten
648037 Segmente versenden
99463 Segmente erneut übertragen
27377 schlechte Segmente erhalten.
150893 zurückgesetzt gesendet
InCsumErrors: 27377
Udp:
74547 Pakete empfangen
4814 Pakete an unbekannten Port empfangen.
56 Paketempfangsfehler
74584 Pakete gesendet
0 Empfangspufferfehler
0 Sendepufferfehler
InCsumErrors: 56
UdpLite:
TcpExt:
177 ungültige SYN-Cookies empfangen
1693 Resets für embryonale SYN_RECV-Sockets empfangen
316 TCP-Sockets haben die Wartezeit im schnellen Timer beendet
3 Pakete werden in bestehenden Verbindungen aufgrund eines Zeitstempels zurückgewiesen
70248 verspätete Bestätigungen gesendet
6 verzögerte Bestätigungen aufgrund der gesperrten Steckdose weiter verzögert
Der Schnellbestätigungsmodus wurde 3082 Mal aktiviert
17 SYNs to LISTEN-Sockets wurden gelöscht
28179 Pakete, die direkt in die Warteschlange von recvmsg prequeue gestellt wurden.
9802 Bytes, die direkt im Prozesskontext aus der Warteschlange empfangen wurden
72106 Paket-Header vorhergesagt
94182 Bestätigungen, die keine empfangenen Datennutzdaten enthalten
40094 vorhergesagte Bestätigungen
332-mal durch selektive Bestätigungen vom Paketverlust wiederhergestellt
8 Überlastungsfenster wurden von DSACK ohne langsamen Start wiederhergestellt
1173 Überlastungsfenster wurden ohne langsamen Start nach teilweiser Bestätigung wiederhergestellt
1029 Timeouts nach SACK-Wiederherstellung
8 Timeouts im Verlustzustand
329 schnelle Neuübertragungen
3 Vorwärts-Neuübertragungen
32 Neuübertragungen im langsamen Start
44785 andere TCP-Zeitüberschreitungen
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 SACK-Neuübertragungen fehlgeschlagen
3144 DSACKs für alte Pakete gesendet
4 DSACKs für Pakete außerhalb der Reihenfolge gesendet
695 DSACKs empfangen
1 DSACKs für nicht in Ordnung befindliche Pakete empfangen
44 Verbindungen aufgrund unerwarteter Daten zurückgesetzt
76 Verbindungen wurden aufgrund eines frühen Benutzerabschlusses zurückgesetzt
6079 Verbindungen wurden aufgrund eines Timeouts abgebrochen
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
InECT1Pkts: 3
InECT0Pkts: 1568
InCEPkts: 108
[[E-Mail geschützt] ~] #

Kernel-Routing-Informationen

Haben Sie ein Routing-Problem? oder die Konnektivität funktioniert nicht wie erwartet, da die Verbindung über eine andere Route verläuft?

Überprüfen Sie schnell die Routing-Tabelle.

[[E-Mail geschützt] ~] # netstat -r
Kernel-IP-Routing-Tabelle
Destination Gateway Genmask Flags MSS-Fenster irtt Iface
Standard-Gateway 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[E-Mail geschützt] ~] #

Von der Portnummer verwendete PID

Sehr praktisch, um Probleme mit Portkonflikten zu beheben. Nehmen wir an, Sie versuchen, einen Apache- oder Nginx-Server zu starten, der Port 80 überwacht, dies jedoch nicht kann, da ein anderer Prozess bereits Port 80 verwendet.

[[E-Mail geschützt] ~] # netstat -anlp | grep 80 | grep HÖREN
tcp6 0 0 ::: 80 ::: * HÖREN 3937 / httpd
[[E-Mail geschützt] ~] #

Und Sie können sehen, dass die PID 3937 diesen Port verwendet.

Wenn Sie AIX verwenden, dann

netstat -Aan | grep $ portnumber

Dadurch wird die Adresse des Protokollsteuerblocks hexadezimal angezeigt

Sobald Sie hexadezimal haben, können Sie unten ausführen, um festzustellen, welcher Prozess eine Portnummer enthält.

rmsock $ address_of_pcb tcpcb

Liste der Netzwerkschnittstellen

Haben Sie mehrere Ethernet-Schnittstellen? oder nicht sicher und wollen es herausfinden?

[[E-Mail geschützt] ~] # netstat -i
Kernel-Schnittstellentabelle
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[E-Mail geschützt] ~] #

Kontinuierliches Zuhören

Eine hervorragende Option bei der Fehlerbehebung bei Abstürzen von Diensten. Angenommen, eine Anwendung stürzt alle paar Minuten zufällig ab. Aber nicht sicher wann genau. Sie können das Argument -c verwenden, das die Ergebnisse kontinuierlich anzeigt.

[[E-Mail geschützt] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd

Wenn die Aktualisierung beendet wird, wissen Sie, dass sie abgestürzt ist.

Fazit

netstat ist einer der am häufigsten verwendeten Befehle von sysadmin, und ich hoffe, die obigen Beispiele geben Ihnen eine Vorstellung davon, was Sie damit tun können. Wenn Sie mehr über die Linux-Administration erfahren möchten, lesen Sie dies Udemy natürlich.

STICHWORTE:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map