Verwenden Sie den Befehl:
ss -neopt state established
Dadurch werden Ihnen nur TCP-Sitzungen in ESTABLISHED angezeigt Zustand, kein Umleiten zu anderen Befehlen erforderlich, also superschnell.
ss ist besser als netstat weil die ältere netstat liest nur aus procfs, das Dateisperren unterliegt. ss macht tatsächlich eine Abfrage innerhalb des Kernels, die vom Kernel-Scheduler behandelt wird und immer genaue Informationen zurückgibt.
Verwendung von /proc zur Reduzierung der Arbeitslast
Ich greife gerne auf Kernel-Variablen zu direkt über /proc . Das ist sehr effizient, schnell und systemfreundlich.
Es gibt eine Pseudodatei (Kernel-Variablentabelle) namens /proc/net/tcp wo Kernel speichert Liste der TCP-Verbindung und Listenning. Das 6. Feld, genannt st für Zustand könnte 0A enthalten für einen Höreintrag und 01 für eine aufgebaute Verbindung.
Zählen TCP eingerichtet Verbindungen:
Durch die Verwendung von grepgrep </proc/net/tcp -c '^ *[0-9]\+: [0-9A-F: ]\{27\} 01 '
Durch die Verwendung von awkawk </proc/net/tcp 'BEGIN{t=0};{if ($4 == "01") {t++;}};END{print t}'
oder
awk </proc/net/tcp 'BEGIN{t=0};/^ *[0-9]+: [0-9A-F: ]{27} 01 /{t++};END{print t}'
Durch die Verwendung von sedsed </proc/net/tcp '/^ *[0-9]\+: [0-9A-F: ]\{27\} 01 /p;d' | wc -l
Ausführungszeit
Da diese Frage für ein System mit hoher Arbeitsbelastung steht. Ich habe eine kleine Bank gemacht:
Method Answer by Milliseconds grep Techno 2.48 awk no regexp ($4=="01") 2.51 sed | wc 2.67 awk with regexp 2.93 ss -neopt state established | wc -l Suprjami 15.14 lsof -i tcp -s tcp:ESTABLISHED Tonioc 25055.00
Ok Toniocs Antwort ist sehr langsam, aber durch seine Ausführlichkeit sehr interessant. Also eindeutig nicht auf Systemen mit hoher Arbeitslast verwendbar.
Diese Bank lässt Sie sehen, ob ss ist ein sehr nützliches dediziertes Tool, das nach /proc fragt Variablen könnten viel schneller sein.
Siehe auch:527875.
netstat + grep ist eine gute und einfache Option für wenige Verbindungen, aber wenn Sie eine große Anzahl von Verbindungen haben, würde ich ss empfehlen wie in nixCraft empfohlen.
Zum Beispiel:ss -s
Total: 78 (kernel 79)
TCP: 31 (estab 27, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 16
Transport Total IP IPv6
* 79 - -
RAW 0 0 0
UDP 4 2 2
TCP 31 2 29
INET 35 4 31
FRAG 0 0 0