A veces necesitamos saber si X puerto está abierto en un ordenador (o servidor) remoto, en ese momento tenemos no pocas opciones o herramientas a usar:
nmap
La primera solución que pensamos muchos es: nmap , ver artículo llamado: Ver puertos abiertos con NMap y medidas para protegernos
En caso de que no deseen hacer todo un scan, sino que simplemente deseen saber si en X ordenador/servidor está abierto un determinado puerto, sería así:
nmap {IP_O_DOMINIO} -p {PUERTO} | grep -i tcp
Ejemplo:
nmap localhost -p 22 | grep -i tcp
O bien:
nmap 127.0.0.1 -p 22 | grep -i tcp
Lo que hace esto es simple, pregunta a la IP o Host si el puerto dado está abierto o no, luego el grep filtra y solo muestra la línea que desean leer, la que les indica si está abierto (open) o cerrado (closed) ese puerto:
Pues… sí, nmap (Herramienta de exploración de redes y de sondeo de puertos) nos sirve pero, hay aún otras variantes donde hay que teclear menos 🙂
nc
nc o netcat, es una opción mucho más simple para saber si un puerto está o no abierto:
nc -zv {IP_O_DOMINIO} {PUERTO}
O sea:
nc -zv 192.168.122.88 80
Aquí tienen un screenshot haciendo una prueba a un puerto que sí está abierto (80) y otra a otro puerto que no lo está (53):
El -zv lo que hace es simple, la v nos permite ver si está abierto o no el puerto, mientras que la z cierra la conexión tan pronto se comprueba el puerto, de no poner la z entonces tendríamos que hacer un Ctrl + C para cerrar el nc.
telnet
Esta es la variante que hace un tiempo usaba (por desconocimiento de las antes mencionadas), a su vez telnet nos sirve para mucho más que solo saber si un puerto está abierto o no.
telnet {IP_O_HOST} {PUERTO}
Aquí un ejemplo:
telnet 192.168.122.88 80
El problema de telnet es el cierre de la conexión. O sea, en determinadas ocasiones no podremos cerrar la solicitud de telnet y nos veremos obligados a cerrar esa terminal, o de lo contrario en otra terminal hacer un killall telnet o algo similar. Es por eso que evito usar telnet a no ser que me sea muy necesario.
Fin!
En fin, espero que les haya resultado interesante esto, si alguien conoce alguna otra forma de conocer si un puerto está abierto o no en otro ordenador lo deja en los comentarios.
Saludos
Me vendrán muy bien estos comandos para cuando conecto por SSH!
Gracias!
¿Hay alguna aplicación gráfica para hacer lo mismo?
Bueno, siempre puedes instalar zenmap que usa nmap por detrás 🙂
Si con nmapfe, es la interfaz gráfica que viene con nmap.
Con el netcat me dice que la z es una opción invalida, sin ella funciona perfectamente, y en $man nc, no aparece tampoco. ¿de donde ha salido?
https://blog.desdelinux.net/wp-content/uploads/2013/12/Captura-de-pantalla-de-2013-12-29-011908.png
-z : Specifies that nc should just scan for listening daemons, without sending any data to them. It is an error to use this option in conjunction with the -l option.
A mí con nc sí me aparece O_O
¿Y cómo hago para conectarme a un VPS por SSL?
Yo lo que hago siempre es ejecutar nmapfe host-ip para que me de todos los puertos tcp, ahora para ver los puertos udp abiertos tenes que ejecutar:
nmap -sU host-ip
Tambien he usado telnet mas que todo en windows si no tengo instalado nmap, la variante de netcat no me llama la atencion…
Saludos
Me gustaria saber mas sobre esto, espero puedas apoyarme tenco conocimientos muy basicos y me gustaria saber mas para aplicar este tipo de conocimiento en mi trabajo.
Acabo de descubrir que no tengo los puertos que necesito abiertos, ahora tendré que investibar cómo abrirlos para poder hacer lo que necesito. Gracias por el aporte, me ha servido de mucho.
¡Artículo muy interesante! Además netcat, funciona también sobre vmware ESXi:
http://www.sysadmit.com/2015/09/prueba-de-conexion-un-puerto-desde-VMWare-Windows-Linux.html
sudo get install nmap
namp 192.168.0.19 -p 21 | grep -i tcp
home del usuario local srv/ftp
reinicia con sudo service vsftpd restart
write_enable=YES para que usuarios locales puedan subir archivos.
Para enjaular anonymous en su home
chroot_local_user=yes
chroot_list_enable=yes
allow_writreable_chroot=yes
no_annon_password=no para que el anonimo ponga pass por cortesia
deny_email_enable=yes
banned_email_file=/etc/vsftpd.banned_emails Para denegar a un anonimo por correo electronico.
____————————————————————–
enjaular a ususario menos a los de la lista
chroot_local_user=yes
chroot_lits_enable=yes
chroot_list_file=/etc/vsftpd.chroot_list.
Para agreggar usuarios sudo adduser nombre
desabilitar locales local_enable=no
enjaulaos por defeto
anonymous enjaulados en srv/ftp
locales en su home
¡Muy bueno! Si no tenemos nmap, telnet o netcat, podemos utilizar cat y el directorio proc:
cat < /dev/tcp/HOST/PUERTO
Ejemplo: http://www.sysadmit.com/2016/03/linux-cat-y-proc-prueba-de-conexion.html
Gracias, muy buena explicacion