Skip to main content

Netstat: Cómo saber las ips conectadas a mi servidor

Comparte:

¿Cómo saber las ips conectadas a mi servidor?

 El siguiente comando muestra una lista de las IPs que están conectadas a nuestro servidor ignorando el ESTADO de la conexión (CLOSE_WAIT, ESTABLISHED, etc)
netstat -tn 2>/dev/null

el flag -t solicita al comando netstat que muestre solo las conexiones TCP
y el flag -n solicita al comando netstat que no resuelva las IPs a nombres (mostrando el formato numérico)

Mientras con 2>/dev/null, la salida de errores “stderr” (2) se redirecciona (>) a la “papelera” (/dev/null). Con esto simplemente indicamos que no queremos que posibles errores estropeen la bonita salida que estamos intentando hacer.

En este punto ya tenemos toda la información disponible, pero es un poco difícil usarla, así que intentemos llegar a un formato más limpio y manejable.

Añadiendo (|) un grep, podemos dejar solamente las IPs que estan conectadas al puerto 80 de nuestro servidor.

netstat -tn 2>/dev/null | grep ":80 "

¿Y también estaría bien dejar solo la 5ª columna, ¿no os parece?

netstat -tn 2>/dev/null | grep ":80 " | awk '{print $5}'

Quizá la parte más complicada será que solamente queremos que se muestren las IPs, así que usamos: cut -d: -f1

Donde:
-d solicita a ‘cut’ que utilice el siguiente carácter como delimitador.
-f indica a ‘cut’ el numero de campos de salida que queremos, en nuestro caso solo necesitamos uno.

netstat -tn 2>/dev/null | grep ":80 " | awk '{print $5}' | cut -d: -f1

Ahora, utilizando ‘sort’, ordenaremos nuestra lista, usando -c para que muestre solo entradas únicas y podemos mostrarlas en orden descendiente con ‘sort -nr’ (numeric y reverse).

A nuestra elección el usar ‘head’ para mostrar sólo los 10 primeros resultados

netstat -tn 2>/dev/null | grep ":80 " | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

Y por supuesto, cambiando el puerto en ‘grep’, a el 25, podremos ver si alguien está abusando de nuestro servidor mail, o en un alojamiento VPS el seguimiento de spammers puede ser un poco más facil. También podemos usar un estado de conexión específico en ‘grep’ en el que estemos interesados, contando conexiones por proceso (usando el parámetro -p en netstat). En esencia, todo esto va de unos pocos comandos que combinados juntos se convierten en una herramienta muy útil para un administrador de sistema de red.