Sprawdź liczbę aktywnych połączeń na porcie 80?

27

Mam serwer WWW, muszę sprawdzić liczbę połączeń na moim serwerze w danym momencie,

użyłem następujących

netstat -anp |grep 80 |wc -l

to wróciło z

2542

ale z moich analiz Google wiem, że równoczesnych użytkowników jest nie więcej niż 100.

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 ?
użytkownik1179459
źródło
Z ssmożna filtrować portu i podać nieco szybciej: ss -nt dport == :80 and state connected.
eckes,
Liczba połączeń nie jest liczbą użytkowników. Każda przeglądarka użytkownika może otwierać wiele połączeń jednocześnie. Przeciwnie, choć rzadziej, wielu użytkowników korzystających z tego samego serwera proxy może pojawić się tylko za pośrednictwem jednego połączenia.
Patrick Mevzek,

Odpowiedzi:

50

Spróbuj po prostu policzyć USTANOWIONE połączenia:

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

Uważaj także, aby nie używać dwukropka w instrukcji grep portu. Samo szukanie 80 może prowadzić do błędnych wyników z pidów i innych portów, które mają znaki 80 na wyjściu.

d34dh0r53
źródło
5
grep -w 80rozwiązuje ten problem i eliminuje takie rzeczy jak 8093.
Michael Hampton
1
tak, masz rację: 80 może również wprowadzić fałszywe alarmy.
d34dh0r53
@MichaelHampton Zarówno grep -w 80, jak i: 80 będą również liczyć wychodzące połączenia HTTP, jeśli takie istnieją. netstat -ntp | awk '{print 4 $}' | grep -w 80. I tak, zbytnio troszczę się o kolor roweru :) :).
Ten został poprawiony. Netstat -an | grep -w 80 | ustalono grep -i | awk {'print $ 5'} | cut -d: -f1 | sortuj | uniq -c | sort -n
user169015
2

Biorąc @ d34dh0r53 odpowiedź o krok „dalej” (w kierunku odpowiedzi z „szerszą” perspektywą), możesz również sprawdzić wszystkie połączenia posortowane według stanu:

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

na przykład:

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

Możliwym wynikiem może być:

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

Mam nadzieję, że to pomoże i proszę o rozwinięcie wszelkich opracowań i / lub komentarzy na powyższe tematy.

Twoje zdrowie,

Chłopak.

Guy Avraham
źródło
1

Możesz po prostu umieścić tam swój adres IP zamiast martwić się o połączenie wielu greps, seds i awks.

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

Użycie $(hostname -i)pozwoli na użycie tego polecenia na dowolnym polu, statycznym / dynamicznym adresie IP i tak dalej.

Gryd3
źródło
0
ss -tn src :80 or src :443

Spowoduje to wyświetlenie wszystkich połączeń z lokalnymi portami 80 lub 443 (w razie potrzeby dodaj / zmodyfikuj porty).

Zastrzeżenie: Zdaję sobie sprawę, że to stare pytanie, ale wciąż jest to najlepszy wynik w Google, więc myślę, że zasługuje na odpowiedź przy użyciu nowoczesnych narzędzi.

Iskren
źródło