Pregunta En Windows, usando la línea de comandos, ¿cómo verifica si un puerto remoto está abierto?


¿Cuál es una forma sencilla en Windows de probar si el tráfico llega a un puerto específico en una máquina remota?


76
2017-07-02 18:01


origen


Relacionado: superuser.com/questions/11207/… - Pacerier


Respuestas:


Encontré una gema hiddem el otro día de Microsoft que está diseñada para probar puertos:

Portqry.exe

"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 computadoras basadas en Windows 2000, en computadoras basadas en Windows XP y en computadoras basadas en Windows Server 2003. La utilidad informa el estado del puerto de los puertos TCP y UDP en una computadora que seleccione ".


59
2017-07-02 18:30



Nota: el intento de descargar esto de Microsoft devolvió una página que indica que la descarga "ya no está disponible". - dgw
@dgw Gracias por eso ... google muestra una nueva versión si busca `portray" que revisaré mañana - Peter M
versión de consola microsoft.com/downloads/… y la versión de interfaz de usuario: descarga.microsoft.com/download/3/f/4/… Árbitro: support.microsoft.com/en-us/help/310099/… - Junior M


¿Qué versión de Windows? Para Windows 8 / Server 2012 y versiones posteriores, lo siguiente funciona en PowerShell:

Test-NetConnection 128.159.1.1 -Port 80

Algunos usuarios de Google también encontrarán alternativas que usen .NET Framework directamente (ya que PowerShell le permite hacerlo) para sistemas que ejecutan versiones más bajas de Windows que no tendrán Test-NetConnection disponible.

Si no eres reacio a usar utilidades de terceros, Nmap También es un muy buen amigo y funciona desde la línea de comandos.


40
2017-10-16 06:18



Método .Net: $connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() } - xXhRQ8sD2L7Z
En Win7, eso no funciona :-( - samsmith
@samsmith ¿Está hablando del comando en mi respuesta, o del comentario de ST8Z ...? El de mi respuesta. solamente funciona para Win8 / 2k12 y superior, y la respuesta lo dice todo. - Iszi
Parece ser Windows 8.1 - No puedo encontrarlo en Windows 8 - Andy Krouwel
Funciona muy bien en Windows 10, y no necesito instalar ningún programa ni agregar ninguna función. ¡Gracias! :) - Steve Bauman


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

23
2017-07-02 18:05



no funciona para UDP. - Adriano Varoli Piazza
UDP es sin conexión .. - Amalgovinus


Telnet funcionará para TCP.

Netcat es una mejor herramienta para este tipo de cosas, incluyendo UDP, pero cuidado, algunos softwares AV lo consideran una "herramienta maliciosa para piratas informáticos"


7
2017-07-02 18:07





El siguiente comando mostrará una lista de 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

Documentación de Netstat en microsoft.com


1
2017-07-11 13:05



Pregunta pregunta sobre puertos abiertos en un remoto Máquina, no local. - Chris S


Utilizar netcat puerto de Windows:

>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
>

0
2017-10-25 12:48





'netstat' es tu amigo


-4
2017-07-02 18:03



Máquina local sí, máquina remota no.
Esta respuesta se publicó antes de la edición que especificaba que se trata de un puerto en una máquina remota.