Conocer si un puerto remoto está abierto desde Linux

En el día de hoy me ha surgido la necesidad de conocer el estado de un determinado puerto en un host remoto. Para ello he utilizado la herramienta Netcat, la cual viene ya instalada en linux.

Los parámetros que he usado han sido -zv, los cuales detallo a continuación:

  • z se encarga de cerrar la conexión una vez finalice una vez terminada la comprobación del puerto.
  • v se encarga de indicar si el puerto está abierto o cerrado.

Si deseas ver todas las opciones teclea nc -h y tendrás esta salida:

1host:~$ nc -h
[v1.10-47]
connect to somewhere:	nc [-options] hostname port[s] [ports] ... 
listen for inbound:	nc -l -p port [-options] [hostname] [port]
options:
	-c shell commands	as `-e'; use /bin/sh to exec [dangerous!!]
	-e filename		program to exec after connect [dangerous!!]
	-b			allow broadcasts
	-g gateway		source-routing hop point[s], up to 8
	-G num			source-routing pointer: 4, 8, 12, ...
	-h			this cruft
	-i secs			delay interval for lines sent, ports scanned
        -k                      set keepalive option on socket
	-l			listen mode, for inbound connects
	-n			numeric-only IP addresses, no DNS
	-o file			hex dump of traffic
	-p port			local port number
	-r			randomize local and remote ports
	-q secs			quit after EOF on stdin and delay of secs
	-s addr			local source address
	-T tos			set Type Of Service
	-t			answer TELNET negotiation
	-u			UDP mode
	-v			verbose [use twice to be more verbose]
	-w secs			timeout for connects and final net reads
	-C			Send CRLF as line-ending
	-z			zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. 'ftp\-data').

Por tanto, para conocer si un puerto está abierto o cerrado en un host teclearemos en la terminal lo siguiente: nc -zv [IP] [Puerto]

Como ejemplo, comprobaremos que el puerto 80 esta abierto en www.google.es

1host:~$ nc -zv www.google.es 80
DNS fwd/rev mismatch: www.google.es != mad41s04-in-f3.1e100.net
www.google.es [216.58.215.131] 80 (http) open

En cambio, si el puerto estuviese cerrado la salida sería la siguiente:

root@1host:/home/jtorqui# nc -zv 10.57.25.13 4000
1host [10.57.25.13] 4000 (?) : Connection refused

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.