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