Vérifiez le nombre de connexions actives sur le port 80?

27

J'ai un serveur Web, je dois vérifier le nombre de connexions sur mon serveur à ce moment donné,

j'ai utilisé suivant

netstat -anp |grep 80 |wc -l

cela est revenu avec

2542

mais d'après mes analyses Google, je sais que le nombre d'utilisateurs simultanés ne dépasse pas 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 ?
user1179459
la source
Avec ssvous pouvez filtrer port et dire un peu plus vite: ss -nt dport == :80 and state connected.
vérifie
Le nombre de connexions n'est pas le nombre d'utilisateurs. Chaque navigateur utilisateur peut ouvrir plusieurs connexions en même temps. Au contraire, bien que plus rare, plusieurs utilisateurs utilisant le même proxy peuvent apparaître uniquement via une seule connexion.
Patrick Mevzek

Réponses:

50

Essayez simplement de compter les connexions ÉTABLI:

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

Faites également attention à ne pas utiliser de deux points dans votre instruction grep de port. La simple recherche de 80 peut entraîner des résultats erronés à partir des pids et autres ports qui contiennent les caractères 80 dans leur sortie.

d34dh0r53
la source
5
grep -w 80résout ce problème et élimine des choses comme 8093.
Michael Hampton
1
oui, vous avez raison: 80 peuvent également introduire de faux positifs.
d34dh0r53
@MichaelHampton grep -w 80 et: 80 compteront également les connexions http sortantes, le cas échéant. netstat -ntp | awk '{print $ 4}' | grep -w 80. Et oui, je me soucie trop de la couleur du bikeshed :) :).
Celui-ci est lil amélioré .. netstat -an | grep -w 80 | grep -i créé | awk {'print $ 5'} | coupe -d: -f1 | trier | uniq -c | sort -n
user169015
2

En prenant @ d34dh0r53 une réponse "plus loin" (vers une réponse avec une perspective "plus large"), vous pouvez également vérifier toutes les connexions triées selon leur état avec les éléments suivants:

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

par exemple:

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

Une sortie possible pourrait être:

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

J'espère que cela aide et veuillez soulever toutes les précisions et / ou commentaires que vous avez sur ce qui précède.

À votre santé,

Gars.

Guy Avraham
la source
1

Vous pouvez simplement y mettre votre adresse IP au lieu de vous soucier de lier plusieurs greps, seds et awks ensemble.

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

L'utilisation $(hostname -i)permettra l'utilisation de cette commande sur n'importe quelle boîte, IP statique / dynamique et ainsi de suite.

Gryd3
la source
0
ss -tn src :80 or src :443

Cela montrera toutes les connexions aux ports locaux 80 ou 443 (ajoutez / modifiez des ports si nécessaire).

Avertissement: je me rends compte que c'est une vieille question, mais c'est toujours le meilleur résultat chez Google, donc je pense que cela mérite une réponse en utilisant des utilitaires modernes.

Iskren
la source