Respuestas:
El otro día encontré una gema hiddem de Microsoft que está diseñada para probar puertos:
"Portqry.exe es una utilidad de línea de comandos que puede usar para ayudar a solucionar problemas de conectividad TCP / IP. Portqry.exe se ejecuta en equipos con Windows 2000, en equipos con Windows XP y en equipos con Windows Server 2003. La utilidad informa el estado del puerto de los puertos TCP y UDP en una computadora que seleccione ".
¿Qué versión de Windows? Para Windows 8 / Server 2012 y posterior, lo siguiente funciona en PowerShell:
Test-NetConnection 128.159.1.1 -Port 80
Algunos Google también mostrarán alternativas que usan el .NET Framework directamente (ya que PowerShell te permite hacerlo) para sistemas que ejecutan versiones inferiores de Windows que no estarán Test-NetConnection
disponibles.
Si no eres reacio a utilizar utilidades de terceros, Nmap también es un muy buen amigo y funciona desde la línea de comandos.
$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
Use el comando telnet para conectarse al servidor en el puerto especificado y ver si se puede establecer una conexión.
Éxito:
$ telnet my_server 25
220 my_server ESMTP Postfix
Fallar:
$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed
Telnet funcionará para TCP.
Netcat es una mejor herramienta para este tipo de cosas, incluido UDP, pero cuidado, algunos softwares AV lo consideran una 'herramienta de hackers malvados'
el siguiente comando enumerará todos los puertos en uso en la máquina ...
netstat -a
La salida contiene el protocolo, la dirección local, la dirección extranjera y el estado actual.
Utilice el puerto de Windows netcat :
>nc -zvv www.google.com 80
www.google.com [108.177.96.103] 80 (http) open
sent 0, rcvd 0
>
>nc -zvv www.google.com 888
www.google.com [108.177.96.147] 888 (?): TIMEDOUT
sent 0, rcvd 0: NOTSOCK
>