it-swarm.com.de

Alternative zu "netstat -s"

netstat -s druckt viele sehr detaillierte Protokollstatistiken wie die Anzahl der empfangenen TCP Reset-Nachrichten zurücksetzen oder die Anzahl der gesendeten ICMP-Echoanforderungsnachrichten oder die Anzahl der aufgrund einer fehlenden Route verworfenen Pakete .

Wenn unter Linux netstat heutzutage als veraltet gilt, gibt es dann eine Alternative?

Statistiken bereitgestellt von ss -s sind oberflächlich im Vergleich zu denen von netstat.

26
Martin

netstat wurde in der Tat von vielen Distributionen abgelehnt, obwohl es wirklich ein Großteil des "net-tools" -Pakets ist (einschließlich ifconfig, route und arp) wurde zugunsten des Pakets "iproute2" veraltet. iproute2 hat sich weiterentwickelt zusammen mit den neuesten Linux-Netzwerkfunktionen , und die traditionellen Dienstprogramme haben dies nicht getan.

Das gewünschte iproute2-Äquivalent ist das wenig bekannte nstat, dies liefert das netstat -s Zähler, wenn auch in etwas anderer Form:

  • rohzählernamen von /proc verwendet werden, denen jeweils eine Klasse vorangestellt ist ("Udp", "Tcp", "TcpExt" usw.)
  • die langen (und möglicherweise lokalisierten) Beschreibungen von netstat sind nicht verfügbar
  • nullwertzähler werden standardmäßig weggelassen
  • verwenden einer konsistenten Spaltenausgabe mit dem Namen und dem Wert in der ersten und zweiten Spalte
  • die dritte Spalte zeigt den Durchschnitt über ein konfigurierbares Zeitfenster, wenn Sie ein Hintergrund-nstat (-d Daemon-Modus) oder 0.0, wenn nicht

    z.B. nstat druckt "UdpInDatagrams NNN", nicht "Udp: InDatagrams" und nicht die ausführliche Netstat-Version von "Udp: NNN-Pakete empfangen".

nstat geht auch davon aus, dass Sie eher inkrementelle als absolute Zahlen möchten, also das nächste Äquivalent zu netstat -s ist /sbin/nstat -asz wo die Optionen sind -a benutze absolute Zähler, -s keine Verlaufsdatei aufbewahren, -z Nullwertzähler nicht auslassen.

ss übernimmt die "Socket" -Teile von netstat, aber nicht die vollständige Funktion, wie Sie herausgefunden haben. (ss ist in vielen Fällen tatsächlich besser als netstat, zwei spezifische sind die Fähigkeit, Filterausdrücke zu verwenden, und die optionale Fähigkeit, tcp_diag und inet_diag Linux-Kernelmodule für den direkteren Zugriff auf Kernel-Socket-Daten als über /proc.)

Wenn Sie die Zuordnung für beschreibende Namen bestätigen müssen, ist die Quelle der Netzwerkzeuge die endgültige Referenz: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html

Doug Vitale bietet ein nützliches Handbuch zum Auffinden der iproute2-Äquivalente der älteren Befehle (es ist nicht gepflegt und leicht unvollständig, es wird kein Verweis auf nstat weggelassen, der Teil des iproute2-Pakets war - seit mindestens 2004 Kernel 2.6.x Zeit).

net-tools lebt weiter und Sie sollten in der Lage sein, ein Paket für Ihre Distribution zu finden (oder es selbst zu kompilieren).

19
mr.spuratic

NETSTAT gilt heutzutage als veraltet und andere in den Netzwerkzeugen enthaltene Programme wie arp, ifconfig, iptunnel, nameif, netstat und route.

Die von mehreren dieser Dienstprogramme bereitgestellten Funktionen wurden in der neuen Suite iproute2 reproduziert und verbessert, hauptsächlich mithilfe des neuen Befehls ip.

Beispiele für veraltete Befehle und deren Ersetzung:

  • arpip n (ip neighbor)
  • ifconfigip a (ip addr), ip link, ip -s (ip -stats)
  • iptunnelip tunnel
  • iwconfigiw
  • nameifip link, ifrename
  • netstatss, ip route (zum netstat -r), ip -s link (zum netstat -i), ip maddr (zum netstat -g)

Der Befehl netstat liest verschiedene/proc-Dateien, um Informationen zu sammeln. Dieser Ansatz ist jedoch schwach, wenn viele Verbindungen angezeigt werden müssen. Das macht es langsamer. Der Befehl ss bezieht seine Informationen direkt aus dem Kernelraum. Die mit den Befehlen ss verwendeten Optionen sind netstat sehr ähnlich, sodass sie leicht ersetzt werden können.

Die von ss bereitgestellten Statistiken sind oberflächlich, werden jedoch als die bessere Alternative zu netstat betrachtet

Beispiele

ss | less  # get all connections
ss -t      # get tcp connections not in listen mode (server programs)
ss -u      # get udp connections not in listen mode
ss -x      # get unix socket pipe connections
ss -ta     # get all tcp connections
ss -au     # get all udp connections
ss -nt     # all tcp without Host name
ss -ltn    # listening tcp without Host resolution
ss -ltp    # listening tcp with PID and name
ss -s      # prints statstics
ss -tn -o  # tcp connection with domain Host and show keepalive timer
ss -tl4    # ip4 connections 
27
GAD3R

Vielleicht möchten Sie den Inhalt von /proc/net/netstat Überprüfen:

TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps ArpFilter TW TWRecycled TWKilled PAWSPassive PAWSActive PAWSEstab DelayedACKs DelayedACKLocked DelayedACKLost ListenOverflows ListenDrops TCPPrequeued TCPDirectCopyFromBacklog TCPDirectCopyFromPrequeue TCPPrequeueDropped TCPHPHits TCPHPHitsToUser TCPPureAcks TCPHPAcks TCPRenoRecovery TCPSackRecovery TCPSACKReneging TCPFACKReorder TCPSACKReorder TCPRenoReorder TCPTSReorder TCPFullUndo TCPPartialUndo TCPDSACKUndo TCPLossUndo TCPLostRetransmit TCPRenoFailures TCPSackFailures TCPLossFailures TCPFastRetrans TCPForwardRetrans TCPSlowStartRetrans TCPTimeouts TCPLossProbes TCPLossProbeRecovery TCPRenoRecoveryFail TCPSackRecoveryFail TCPSchedulerFailed TCPRcvCollapsed TCPDSACKOldSent TCPDSACKOfoSent TCPDSACKRecv TCPDSACKOfoRecv TCPAbortOnData TCPAbortOnClose TCPAbortOnMemory TCPAbortOnTimeout TCPAbortOnLinger TCPAbortFailed TCPMemoryPressures TCPSACKDiscard TCPDSACKIgnoredOld TCPDSACKIgnoredNoUndo TCPSpuriousRTOs TCPMD5NotFound TCPMD5Unexpected TCPSackShifted TCPSackMerged TCPSackShiftFallback TCPBacklogDrop TCPMinTTLDrop TCPDeferAcceptDrop IPReversePathFilter TCPTimeWaitOverflow TCPReqQFullDoCookies TCPReqQFullDrop TCPRetransFail TCPRcvCoalesce TCPOFOQueue TCPOFODrop TCPOFOMerge TCPChallengeACK TCPSYNChallenge TCPFastOpenActive TCPFastOpenPassive TCPFastOpenPassiveFail TCPFastOpenListenOverflow TCPFastOpenCookieReqd TCPSpuriousRtxHostQueues BusyPollRxPackets
TcpExt: 0 0 3310 41566 0 0 0 8 0 0 6402271 0 0 0 0 55 4280514 134510 38423 0 611 15354484 20413302 794718685 0 14094957 6423168 25905597 17269587 4 23681 29 50 20 0 25 43 25 19211 1800 131 0 93 93 25430 4864 18099 1199566 2300620 1280201 0 279 0 0 38507 607 2359841 19 98943 1769 0 5993 0 0 0 3 65 1310588 380 0 0 0 0 613504 190 0 12056356 0 0 0 0 3 735740 43633 0 606 3933 193 0 24 0 0 0 14 0
IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets OutBcastOctets InCsumErrors InNoECTPkts InECT1Pkts InECT0Pkts InCEPkts
IpExt: 0 0 50492 0 18482301 0 68850196397 26546692767 3029352 0 2305454225 0 0 457718114 36 19480 2472

Nicht das freundlichste Format, aber Sie bekommen die Idee.

Sie sind sich nicht sicher, ob es tatsächlich die spezifischen Elemente enthält, nach denen Sie suchen, aber sie sind möglicherweise an anderer Stelle in /proc/net Verfügbar.

4
jcaron