¿Verifica el número de conexiones activas en el puerto 80?

27

Tengo un servidor web, necesito verificar la cantidad de conexiones en mi servidor en ese momento,

solía seguir

netstat -anp |grep 80 |wc -l

esto regresó con

2542

pero de mi google analytics sé que los usuarios simultáneos no son más de 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 ?
usuario1179459
fuente
Con sspuede filtrar el puerto y el estado un poco más rápido: ss -nt dport == :80 and state connected.
eckes
El número de conexiones no es el número de usuarios. Cada navegador de usuario puede abrir múltiples conexiones al mismo tiempo. Por el contrario, aunque es más raro, varios usuarios que usan el mismo proxy solo pueden aparecer a través de una conexión.
Patrick Mevzek

Respuestas:

50

Intente contar las conexiones ESTABLECIDAS:

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

Además, tenga cuidado de no usar dos puntos en su declaración de puerto grep. Solo buscar 80 puede conducir a resultados erróneos de pids y otros puertos que tienen los caracteres 80 en su salida.

d34dh0r53
fuente
55
grep -w 80resuelve ese problema y elimina cosas como 8093.
Michael Hampton
1
Sí, tienes razón: 80 posiblemente también puede introducir falsos positivos.
d34dh0r53
@MichaelHampton Tanto grep -w 80 como: 80 también contarán las conexiones http salientes, si las hay. netstat -ntp | awk '{print $ 4}' | grep -w 80. Y sí, me importa demasiado el color de la bicicleta :) :).
Este es lil mejorado .. netstat -an | grep -w 80 | grep -i establecido | awk {'print $ 5'} | corte -d: -f1 | ordenar | uniq -c | sort -n
user169015
2

Tomando @ d34dh0r53 la respuesta un paso "más allá" (hacia una respuesta con una perspectiva "más amplia"), también puede verificar todas las conexiones ordenadas según su estado con lo siguiente:

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

por ejemplo:

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

Un posible resultado podría ser:

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

Espero que ayude y por favor levante cualquier elaboración y / o comentario que tenga sobre lo anterior.

Aclamaciones,

Chico.

Guy Avraham
fuente
1

Simplemente podría poner su dirección IP allí en lugar de preocuparse por encadenar múltiples greps, seds y awks juntos.

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

El uso $(hostname -i)permitirá el uso de este comando en cualquier cuadro, IP estática / dinámica, etc.

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

Esto mostrará todas las conexiones a los puertos locales 80 o 443 (agregue / modifique los puertos si es necesario).

Descargo de responsabilidad: me doy cuenta de que esta es una pregunta antigua, pero sigue siendo el mejor resultado en Google, por lo que creo que merece una respuesta utilizando las utilidades modernas.

Iskren
fuente