netstat Tipps und Tricks

13

In der gleichen Weise wie bei den "Nützlichen Befehlszeilen" -Fragen (für Windows , Linux und Mac ) halte ich es für nützlich, "nützliche Möglichkeiten zur Verwendung von Dienstprogramm x" -Fragen zu haben. Auf den Manpages erfahren Sie, was Parameter bewirken, aber nicht unbedingt, warum Sie sie verwenden würden, was das Ergebnis bedeutet, welche nützlichen Funktionen der Befehl ohne umfangreiche Experimente nicht bietet oder wie Sie die gewünschte Antwort erhalten.

Ich würde gerne etwas über netstat erfahren . Es scheint, dass ich in der Lage sein sollte, herauszufinden, welche Prozesse Bandbreite verbrauchen und wie schnell das System tatsächlich Bandbreite verbraucht. Es sieht auch nützlich aus, um unerwünschte Verbindungen zu erkennen (wahrscheinlich virii), und es gibt alle Arten von Routing-Informationen (mit denen ich nur spielen musste, wenn ich versuchte, einen Sharp Zaurus-PDA dazu zu bringen, TCP / IP über USB zu verwenden.) Mit anderen Worten, es klingt wie eine Goldmine, und ich hatte gehofft, einige von Ihnen würden Nuggets von Informationen teilen, die Sie gefunden haben.

Bitte geben Sie in Ihrer Antwort die Version von netstat und Ihr Betriebssystem an. Es wäre schön, ein paar Beispiele zu sehen und zu wissen, was es bedeutet. Ich habe diese Frage als Community-Wiki markiert und hoffe, dass Sie in Ihren Antworten dasselbe tun, damit andere Leute, die ein anderes Betriebssystem kennen, einen nahezu gleichwertigen Befehl eingeben können, wenn sie dies wissen, in derselben Antwort und Dann können wir darüber abstimmen, welche Antworten am nützlichsten sind.

Clinton Blackmore
quelle

Antworten:

4

Zeigen Sie lokale empfangsbereite TCP / UDP-Ports und den Prozess an, zu dem sie gehören:

sudo netstat -tulpn
cmcginty
quelle
4
Das Mac-Äquivalent scheint "sudo lsof -i -n -P | grep LISTEN" zu sein. (Wenn die Flags -n und -P weggelassen werden, werden Host- und Portnamen gesucht.)
Clinton Blackmore
1
Clinton - das ist ein fantastischer Befehl.
SpacemanSpiff
3

Netstat-Routingtabellen

[Dies wurde unter Mac OS X 10.5.7 getestet. Ich vermute, dass das Ergebnis auf allen Plattformen nahezu gleich ist, da angezeigt wurde, dass es unter Solaris funktioniert.]

netstat -r 

Sie erhalten eine Routing-Tabelle.

netstat -nr

ist das Gleiche, gibt Ihnen jedoch unformatierte IP-Adressen, anstatt nach Computernamen zu suchen. Die Ausgabe sieht wie folgt aus (nur länger):

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.40.250     UGSc       19        1    en1
127                127.0.0.1          UCS         0        0    lo0
127.0.0.1          127.0.0.1          UH          1     3140    lo0
169.254            link#5             UCS         0        0    en1
169.254.33.92      127.0.0.1          UHS         0        0    lo0
192.168.40         link#5             UCS        11        0    en1
192.168.40.1       0:17:f2:ca:a0:94   UHLW        0        0    en1   1150
...

Internet6:
Destination                             Gateway                         Flags      Netif Expire
::1                                     link#1                          UHL         lo0
fe80::%lo0/64                           fe80::1%lo0                     Uc          lo0
fe80::1%lo0                             link#1                          UHL         lo0
fe80::%en0/64                           link#4                          UC          en0
...
ff02::/32                               link#7                          UC          en2
ff02::/32                               link#8                          UC          en3

Säulen:

Ziel und Gateway: Das Ziel ist eine Adresse (oder ein Adressbereich), an die wir möglicherweise Informationen senden möchten. Alle an dieses Ziel gesendeten Daten werden an das zugeordnete Gateway gesendet. Das Gateway weiß, wohin die Daten für den nächsten Sprung auf der Reise gesendet werden sollen. Wenn wir Daten an ein Ziel senden möchten, das keinen Eintrag in der Routing-Tabelle hat, werden diese über das Standard-Gateway übertragen.

Flags: Die Man / Info-Seite listet alle Flags auf. Die Einstellungen auf meinem Standard-Gateway haben folgende Bedeutung:

UGSc
U       - RTF_UP           Route usable
 G      - RTF_GATEWAY      Destination requires forwarding by intermediary
  S     - RTF_STATIC       Manually added
   c    - RTF_PRCLONING    Protocol-specified generate new routes on use

Das ist merkwürdig, dass es angeblich manuell hinzugefügt wurde, als es über DHCP kam.

Refs: "Das Feld refcnt gibt die aktuelle Anzahl der aktiven Verwendungen der Route an. Verbindungsorientierte Protokolle behalten normalerweise eine einzelne Route für die Dauer einer Verbindung bei, während verbindungslose Protokolle eine Route erhalten, während sie an dasselbe Ziel senden." (Manpage)

Verwendung: "Das Feld" Verwendung "gibt die Anzahl der Pakete an, die über diese Route gesendet wurden."

Netif: "Der Schnittstelleneintrag gibt die für die Route verwendete Netzwerkschnittstelle an."

Auf meinem Mac

  • lo0 ist die Loopback-Schnittstelle.
  • en0 ist ethernet.
  • en1 ist drahtlos.
  • en2 und en3 werden von einer virtuellen Maschine verwendet.

Expire: Von einer Manpage für eine andere Version von netstat: "Zeigt die verbleibende Zeit (in Minuten) an, bevor die Route abläuft."

Clinton Blackmore
quelle
2

In Fenstern:

c:>netstat -a | find /c "TCP"
68

Zeigt die Anzahl der TCP / IP-Verbindungen an. Nützlich, wenn Sie Probleme mit Systemen mit hohem Netzwerkanteil beheben , denen die TCP-Ports ausgehen und die MaxUserPorts erhöhen müssen .

Christopher_G_Lewis
quelle
OS X 10.5.7-Äquivalent: netstat -a | grep -c tcp
Clinton Blackmore
2

Sende- / Empfangsrate

Auf dem Mac [OS X 10.5.7]:

netstat -i -w 10

[ Hinweise zur Verwendung unter Solaris und Linux finden Sie in der Antwort von Chuck .]

Die Ausgabe sieht folgendermaßen aus:

            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
       794     0    1166796        763     0      50358     0
       789     0    1167773        765     0      52542     0
       792     0    1166548        765     0      51174     0
       796     0    1167262        598     0      40152     0
       929     0    1278561        846     0      65625     0
       563     0     815570        530     0      36828     0
        32     0       4360          1     0        774     0
         9     0        705          0     0        684     0
         9     0        631          0     0          0     0

Dies zeigt, wie viele Pakete und Bytes in einem bestimmten Zeitintervall übertragen wurden. (10 Sekunden in diesem Beispiel). Ich war mit YouTube verbunden und lud in jedem Intervall mehr als 1 MB herunter, bis ich den Browser-Tab schloss und die Rate die Talsohle überschritt.

Dies kann nützlich sein, wenn Sie darauf warten, dass ein Upload oder Download abgeschlossen ist. Überwachen Sie die Rate, und wenn sie dramatisch sinkt, wissen Sie, dass sie abgeschlossen ist.

Beachten Sie, dass der obige Befehl den gesamten Durchsatz auf allen Schnittstellen anzeigt. Verwenden Sie das -IFlag wie folgt, um es auf eine bestimmte Schnittstelle (in diesem Beispiel WiFi) zu beschränken :

netstat -I en1 -w 10
Clinton Blackmore
quelle
1

Windows:

Netstat -n
(Show active TCP connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Zeigt aktive TCP-Verbindungen, aber keine UDP-Aktivität an.

Netstat -an
  (Show all connections, don't slow down trying to do name resolution)

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
TCP    192.168.1.38:4853    69.59.196.212:80       ESTABLISHED

Zeigt alle aktiven TCP-Verbindungen sowie empfangsbereite TCP- und UDP-Verbindungen an. Zeigt hier keine ausgehende UDP-Aktivität an.

Mike
quelle
Ich werde vorerst einen Kommentar hinzufügen, aber wenn ich genug Repräsentanten habe, bearbeite ich die Antwort. Äquivalent zu netstat unter Mac OS X 10.5.7 - fügen Sie -p tcp hinzu, sodass es auf das TCP-Protokoll beschränkt ist. dh netstat -p tcp -nodernetstat -p tcp -an
Clinton Blackmore
Ein weiteres nützliches Schalterpaar unter Windows ist -o (zeigt die PID jedes Sockets an) und -b (zeigt den Prozessnamen jedes Sockets an). Besonders praktisch bei der Untersuchung von Maschinen, bei denen Sie vermuten, dass sie kompromittiert wurden.
Murali Suriar
netstat -nt macht das gleiche (nur numerisch und tcp)
Jauder Ho
1

Windows

netstat -b

Zeigen Sie den Prozess über die Verbindung an

user640
quelle
1

Windows 7 (möglicherweise schon früher):

netstat -ano

listet aktive Sitzungen mit zugeordneten PIDs auf

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       776
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING       1724

oder um einen Schritt zu speichern

netstat -anb

(von einer erhöhten CMD-Eingabeaufforderung) gibt den Prozessnamen an

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2048           0.0.0.0:0              LISTENING
TristanK
quelle
1

Ich bin mir sicher, dass ich das Rad neu erfinden werde, aber hier ist ein einfaches Perl-Skript , mit dem netstat ausgeführt und die Ausgabe so sortiert werden kann, dass die derzeit meist verbundenen IP-Adressen die Nase vorn haben. Dies wird am besten mit dem Überwachungsprogramm für Aktualisierungen in Intervallen von 2 Sekunden verwendet.

Update: Bedeutende Überarbeitung des 11.02.2013, um viele Probleme zu beseitigen und Hostnamen anzuzeigen

Beispielausgabe:

Distant inbound connections: 2
   85.93.216.17:772               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
   80.90.47.155:443               <-- 78.141.139.10       :    1        ip-78-141-139-10.dyn.luxdsl.pt.lu     1 x ESTABLISHED
Distant outbound connections: 3
   80.90.63.61                    --> 80.90.63.48:25      :    2        smtp.m-plify.net                      2 x TIME_WAIT
   85.93.216.17                   --> 85.93.216.18:772    :    1        maya.m-plify.net                      1 x ESTABLISHED
Looping connections: 57 (10 duplicates)
   127.0.0.1                      --> 127.0.0.1:9355      :   20                                              1 x ESTABLISHED, 8 x TIME_WAIT, 11 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:4713      :   10                                             10 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:9353      :    9                                              4 x TIME_WAIT, 5 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:3306      :    8                                              6 x ESTABLISHED, 1 x TIME_WAIT, 1 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:5445      :    5                                              1 x ESTABLISHED, 4 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:9354      :    2                                              2 x CLOSE_WAIT
   127.0.0.1                      --> 127.0.0.1:7998      :    1                                              1 x TIME_WAIT
   127.0.0.1                      --> 127.0.0.1:3351      :    1                                              1 x ESTABLISHED
   127.0.0.1                      --> 127.0.0.1:32000     :    1                                              1 x ESTABLISHED
David Tonhofer
quelle
0

Solaris:

netstat -nr
(displays routing table)
Milner
quelle
0

Aus dem Buch Wicked Cool Shell Scripts:

Skript Nr. 90.1 : Alle 'n' Minuten Netstat-Werte abrufen (über crontab)

Skript Nr. 90.2 : Analysieren Sie das laufende Leistungsprotokoll von netstat und ermitteln Sie wichtige Ergebnisse und Trends.

(Ich liebe dieses Buch - es lohnt sich zu kaufen!)

gharper
quelle
0

Unter Solaris sind viele Benutzer daran gewöhnt, "netstat -i 1" auszuführen, um die Anzahl der laufenden Pakete zu ermitteln. Das Linux netstat hat eine unbrauchbare Version dieser Funktion, da es Ihnen die Rohzahl und nicht ein Delta anzeigt. Um ähnliche Ergebnisse zu erhalten, geben Sie "sar -n DEV 1 0" ein. Man betrachte tatsächlich "LANG = C sar -n DEV 1 0 | grep schnittstellenname" (sar stellt die Zeit mit AM und PM in bestimmten Gebietsschemata an den Anfang der Zeile, daher ist es am besten, sich daran zu gewöhnen, immer "LANG =" auszuführen C sar "falls Sie es jemals analysieren werden).

carlito
quelle
Beispiele für die Ausgabe und die Verwendung von Macs finden Sie unter serverfault.com/questions/11289/netstat-tips-and-tricks/… .
Clinton Blackmore
0

Unter Solaris

netstat -k

Zeigt eine Zusammenfassung verschiedener Statistiken. Nützlich für die Überprüfung auf Fehler usw.

Jauder Ho
quelle
0

Da hat es noch niemand erwähnt:

netstat -s 

bietet eine Menge nützlicher Statistiken nach Protokoll unter Linux.

dmourati
quelle