Prueba de conexión a un puerto desde VMWare, Windows y Linux

En ocasiones, nos interesa saber si un puerto en un equipo remoto está a la escucha.

Podemos utilizar un scanner de puertos para saber los puertos que están a la escucha en un equipo remoto, de todas formas, muchas veces nos encontramos con que no tenemos la posibilidad de instalar un scanner de puertos en el equipo.

En este post, veremos como saber si un puerto está a la escucha en un equipo remoto, utilizando las herramientas incluidas en los sistemas operativos: WMWare ESXi, Windows y Linux

VMWare ESXi

Dentro de las utilidades incluidas en BusyBox, disponemos de la herramienta netcat (nc).

Información adicional sobre la implementación de BusyBox que encontramos en VMWare vSphere ESXi: VMWare: ESXi BusyBox (SYSADMIT.com)

Con la herramienta netcat (nc), podemos realizar conexiones a puertos:

nc -z IP-destino Puerto-destino

Ejemplo:

~ # nc -z 10.48.0.11 80
Connection to 10.48.0.11 80 port [tcp/http] succeeded!


Los posibles parámetros, son los siguientes:

~ # nc -h
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
          [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
          [-x proxy_address[:port]] [hostname] [port[s]]
        Command Summary:
                -4              Use IPv4
                -6              Use IPv6
                -D              Enable the debug socket option
                -d              Detach from stdin
                -h              This help text
                -i secs         Delay interval for lines sent, ports scanned
                -k              Keep inbound sockets open for multiple connects
                -l              Listen mode, for inbound connects
                -n              Suppress name/port resolutions
                -p port         Specify local port for remote connects
                -r              Randomize remote ports
                -s addr         Local source address
                -T ToS          Set IP Type of Service
                -C              Send CRLF as line-ending
                -t              Answer TELNET negotiation
                -U              Use UNIX domain socket
                -u              UDP mode
                -v              Verbose
                -w secs         Timeout for connects and final net reads
                -X proto        Proxy protocol: "4", "5" (SOCKS) or "connect"
                -x addr[:port]  Specify proxy address and port
                -z              Zero-I/O mode [used for scanning]
        Port numbers can be individual or ranges: lo-hi [inclusive]


Windows 

Disponemos del comando telnet, donde podemos especificar un puerto de destino.

El comando telnet (cliente de telnet), por defecto, no está instalado a partir de Windows Vista y Windows Server 2008.

Podemos instalarlo de forma rápida, realizando el siguiente procedimiento:

Instalar telnet desde CMD (SYSADMIT.com)

Aquí tenemos un ejemplo de uso de telnet, para verificar si el puerto 80 de un host remoto está a la escucha:

Averiguar el tipo de servidor web con telnet (SYSADMIT.com) 

Si disponemos de PowerShell 4 o superior, podemos encontrar el cmd-let: test-netconnection, para realizar pruebas de conexión a puertos remotos.

PowerShell 4 está incluida por defecto en Windows Server 2012 y Windows 8.1.

Ejemplos:

Prueba de conexión al puerto 80 del equipo 172.18.0.2

- Indicando nombre genérico (Se permite: SMB, HTTP, RDP, PING)

PS C:\> test-netconnection 172.18.0.2 -CommonTCPPort HTTP

ComputerName           : 172.18.0.2
RemoteAddress          : 172.18.0.2
RemotePort             : 80
InterfaceAlias         : Ethernet0
SourceAddress          : 172.18.0.1
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : True


- Indicando el número del puerto:

PS C:\> test-netconnection 172.18.0.2 -Port 80

ComputerName           : 172.18.0.2
RemoteAddress          : 172.18.0.2
RemotePort             : 80
InterfaceAlias         : Ethernet0
SourceAddress          : 172.18.0.1
PingSucceeded          : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : True


Con el parámetro -v, obtendremos información detallada de su ejecución.

Ejecución PowerShell v.4, prueba de conexión al puerto

Linux:

Sobre Linux, disponemos de múltiples posibilidades dependiendo de la distribución y los paquetes instalados en el SO.

Veamos tres posibilidades:

  • Utilizando nmap: nmap -p 80 www.google.com
  • Utilizando netcat:  nc -z www.google.com 80
  • Utilizando telnet: telnet www.google.com 80

Si no disponemos de ninguno de estos tres comandos (nmap, nc, telnet), siempre podemos efectuar una prueba de conexión a un puerto utilizando cat y el directorio /proc:


No hay comentarios:

Publicar un comentario