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