Überprüfen Sie die Anzahl der aktiven Verbindungen auf Port 80?

27

Ich habe einen Webserver, ich muss die Anzahl der Verbindungen in meinem Server zu diesem Zeitpunkt überprüfen.

Ich habe folgendes benutzt

netstat -anp |grep 80 |wc -l

Dies kehrte mit

2542

aber von meinen google analytics weiß ich, dass gleichzeitige benutzer nicht mehr als 100 sind.

is this correct ? 
if not how to i get the active number of connections ? 
is this sign of a victim of DOS attack how do i know that ?
user1179459
quelle
Mit ssIhnen können Port - Filter und ein bisschen schneller angeben: ss -nt dport == :80 and state connected.
eckes
Die Anzahl der Verbindungen ist nicht die Anzahl der Benutzer. Jeder Benutzerbrowser kann mehrere Verbindungen gleichzeitig öffnen. Im Gegenteil: In seltenen Fällen können mehrere Benutzer, die denselben Proxy verwenden, nur über eine Verbindung angezeigt werden.
Patrick Mevzek

Antworten:

50

Zählen Sie einfach die EINGEBAUTEN Verbindungen:

netstat -anp | grep :80 | grep ESTABLISHED | wc -l

Achten Sie auch darauf, dass Sie in Ihrer port grep-Anweisung keinen Doppelpunkt verwenden. Das Suchen nach 80 kann zu fehlerhaften Ergebnissen von Pids und anderen Ports führen, die zufällig die Zeichen 80 in ihrer Ausgabe haben.

d34dh0r53
quelle
5
grep -w 80löst dieses Problem und beseitigt Dinge wie 8093.
Michael Hampton
1
ja, du hast recht: 80 kann möglicherweise auch falsch positive Ergebnisse einbringen.
d34dh0r53
@MichaelHampton Sowohl grep -w 80 als auch: 80 zählen auch ausgehende http-Verbindungen, falls vorhanden. netstat -ntp | awk '{print $ 4}' | grep -w 80. Und ja, die Farbe des Bikesheds ist mir zu wichtig :) :).
Dieser ist etwas verbessert .. netstat -an | grep -w 80 | grep -i gegründet | awk {'print $ 5'} | ausschneiden -d: -f1 | sortieren | uniq -c | sort -n
user169015
2

Wenn Sie @ d34dh0r53 einen Schritt "weiter" gehen (hin zu einer Antwort mit einer "breiteren" Perspektive), können Sie auch alle Verbindungen nach ihrem Status sortiert wie folgt überprüfen:

netstat -ant | grep :<port_num> | awk '{print $6}' | sort | uniq -c | sort -n

beispielsweise:

netstat -ant | grep :8000 | awk '{print $6}' | sort | uniq -c | sort -n

Eine mögliche Ausgabe könnte sein:

1 CLOSING
1 established
1 FIN_WAIT2
1 Foreign
2 CLOSE_WAIT
6 FIN_WAIT1
7 LAST_ACK
7 SYN_RECV
37 ESTABLISHED
44 LISTEN
297 TIME_WAIT

Hoffe, es hilft und bitte erheben Sie alle Ausarbeitungen und / oder Kommentare, die Sie zu den oben genannten haben.

Prost,

Kerl.

Guy Avraham
quelle
1

Sie können einfach Ihre IP-Adresse eingeben, anstatt sich Gedanken über das Aneinanderreihen mehrerer Greps, Seds und Awks zu machen.

netstat -anp | grep -c $(hostname -i):80

Mit $(hostname -i)können Sie diesen Befehl für jede Box, statische / dynamische IP usw. verwenden.

Gryd3
quelle
0
ss -tn src :80 or src :443

Daraufhin werden alle Verbindungen zu den lokalen Ports 80 oder 443 angezeigt (fügen Sie ggf. Ports hinzu oder ändern Sie sie).

Haftungsausschluss: Mir ist klar, dass dies eine alte Frage ist, aber es ist immer noch das beste Ergebnis bei Google. Daher denke ich, dass es eine Antwort unter Verwendung moderner Dienstprogramme verdient.

Iskren
quelle