netstat -s
druckt eine Menge sehr detaillierter Protokollstatistiken aus, z. B. die Anzahl der empfangenen TCP-Rücksetznachrichten oder die Anzahl der ICMP-Echoanforderungsnachrichten oder die Anzahl der aufgrund einer fehlenden Route verworfenen Pakete.
Wenn Linux netstat
heutzutage als veraltet gilt, gibt es dann eine Alternative?
Statistiken, die von bereitgestellt werden, ss -s
sind oberflächlich im Vergleich zu denen, die von bereitgestellt werden netstat
.
netstat
ist veraltet. Verwenden Siess
.tcpdump
ermöglicht die Erfassung von Live-Datenverkehr, speichert Statistiken jedoch nicht in einer Weise, die diesnetstat -s
zeigt.sysctl
Ausgabe oder den Inhalt verschiedener/proc/net/*
Knoten untersuchen.Antworten:
netstat
hat in der Tat von vielen Distributionen als veraltet, obwohl es wirklich viel von dem „net-tool“ Paket ist (einschließlichifconfig
,route
undarp
) , die sie für den „iproute2“ -Paket ist veraltet. iproute2 hat sich zusammen mit den neuesten Linux-Netzwerkfunktionen weiterentwickelt , die traditionellen Dienstprogramme jedoch nicht.Das gewünschte iproute2-Äquivalent ist das wenig bekannte
nstat
. Es enthält die Leistungsindikatorennetstat -s
, allerdings in einer etwas anderen Form:/proc
Zählernamen von verwendet, denen jeweils eine Klasse vorangestellt ist ("Udp", "Tcp", "TcpExt" usw.).Die dritte Spalte zeigt den Durchschnitt über ein konfigurierbares Zeitfenster, wenn Sie ein Hintergrund-nstat (
-d
Daemon-Modus) gestartet haben , oder 0,0, wenn nichtzB
nstat
prints "udpInDatagrams NNN" nicht "Udp: InDatagrams", und nicht die ausführliche netstat - Version von "Udp: NNN - Pakete empfangen".nstat
auch voraus , dass Sie als absolute Zahlen inkrementelle eher wollen, so der am nächsten entsprichtnetstat -s
ist ,/sbin/nstat -asz
wo die Optionen-a
Gebrauch absolute Zähler,-s
keine History - Datei halten,-z
nicht auslassen Null-Wert - Zähler.ss
übernimmt die "Socket" -Teilenetstat
, aber nicht deren vollständige Funktion, wie Sie herausgefunden haben. (ss
Ist eigentlich besser alsnetstat
in vielen Fällen. Zwei spezielle sind die Möglichkeit, Filterausdrücke zu verwenden, und die optionale Möglichkeit, das Kernelmodultcp_diag
und dasinet_diag
Linux-Kernelmodul zu verwenden, um direkter als über auf Kernel-Socket-Daten zuzugreifen/proc
.)Wenn Sie die Zuordnung für beschreibende Namen bestätigen müssen, ist die Net-Tools-Quelle die endgültige Referenz: http://sourcecodebrowser.com/net-tools/1.60/statistics_8c_source.html
Doug Vitale bietet eine nützliche Anleitung, um die iproute2-Entsprechungen der älteren Befehle zu finden (es ist nicht gepflegt und etwas unvollständig, es wird kein Verweis darauf verwendet,
nstat
der seit mindestens Kernel 2.6.x im iproute2-Paket enthalten ist).net-tools lebt jedoch weiter und Sie sollten in der Lage sein, ein Paket für Ihre Distribution zu finden (oder es selbst zu kompilieren).
quelle
NETSTAT gilt heutzutage als veraltet und andere Programme, die in den Net-Tools enthalten sind, wie arp, ifconfig, iptunnel, nameif
netstat
und route.Die von mehreren dieser Dienstprogramme bereitgestellten Funktionen wurden in der neuen iproute2- Suite reproduziert und verbessert , hauptsächlich durch Verwendung des neuen
ip
Befehls.Beispiele für veraltete Befehle und deren Ersetzungen:
arp => ip n (ip nachbar)
ifconfig => ip a (ip addr), ip link, ip -s (ip -stats)
iptunnel => ip tunnel
iwconfig => iw
nameif => ip link, ifrename
netstat => ss, ip route (für netstat-r), ip -s link (für netstat -i), ip maddr (für netstat-g)
Der
netstat
Befehl liest verschiedene / proc-Dateien, um Informationen zu sammeln. Dieser Ansatz ist jedoch schwach, wenn viele Verbindungen angezeigt werden müssen. Das macht es langsamer. Derss
Befehl bezieht seine Informationen direkt aus dem Kernel-Space. Die mit denss
Befehlen verwendeten Optionen ähneln denen von netstat und sind daher leicht zu ersetzen.Statistiken von
ss
sind oberflächlich, gelten aber als die bessere Alternative zunetstat
Beispiele:
bekomme alle Verbindungen:
ss | less
ss -t
Holen Sie sich TCP-Verbindungen nicht im Listen-Modus (Server-Programme)ss -u
Holen Sie sich udp-Verbindungen nicht im Listen-Modusss -x
Unix-Muffenrohrverbindungen erhaltenss -ta
Holen Sie sich alle TCP-Verbindungenss -au
bekomme alle udp verbindungenss -nt
Alle TCP ohne Hostnamenss -ltn
Hören von TCP ohne Hostauflösungss -ltp
Hören von TCP mit PID und Namess -s
druckt statistische Datenss -tn -o
TCP-Verbindung mit Domain-Host und Keepalive-Timer anzeigenss -tl4
IP4-Verbindungenquelle
ss -s
keine Daten bereitgestellt werden, dienetstat -s
bereitstellen. Dies beinhaltet auch Fehlinformationen:/proc
ist der Kernel - Schnittstelle für dieses und das ist genau , wiess
erhält ein Großteil der Daten:strace -e trace=file,read /sbin/ss -s
.ss -s
sind oberflächlich im Vergleich zu den von netstat zur Verfügung gestellten" (Mittel im Vergleich zunetstat -s
). Und es ist wirklich die Wahrheit: Von ss-s können Sie beispielsweise nichts über TCP Retransmissions wissen.Möglicherweise möchten Sie den Inhalt von
/proc/net/netstat
:Nicht das freundlichste Format, aber Sie bekommen die Idee.
Sie sind sich nicht sicher, ob es tatsächlich die gewünschten Artikel enthält, sie sind jedoch möglicherweise an anderer Stelle in verfügbar
/proc/net
.quelle
awk '{for(i=1;i<=NF;i++)title[i] = $i; getline; print title[1]; for(i=2;i<=NF;i++)printf " %s: %s\n", title[i], $i }' /proc/net/netstat
/proc/net/snmp
enthält die meisten Daten und/proc/net/netstat
enthält den Rest. Leider müssen Sie net-toolsstatistics.c
source lesen , um alle Namenszuordnungen zu ermitteln, obwohl die meisten ziemlich offensichtlich sind.