¿Cómo descubrir si se puede acceder a una dirección / puerto específico?

10

Necesito una utilidad simple que me permita verificar si una PC, conectada a una red local, puede alcanzar una dirección específica : puerto usando un protocolo específico como TCP o UDP

El sistema operativo de la máquina que usaré para hacer la verificación es Windows XP.

Pato
fuente
Debe consultar nuestro psexec de Microsoft Sysinternals. Le permitirá ejecutar un proceso en una computadora determinada usando credenciales dadas.
music2myear

Respuestas:

11

Use simplemente telnet:

telnet hostname port

Si obtiene una conexión, algo responde en ese puerto.

Si recibe un mensaje de error, ningún programa está escuchando en ese puerto o el nombre de host no es válido:

Connecting To hostname...Could not open connection to the 
host, on port <port>: Connect failed
Snark
fuente
+1, telnet o el todopoderoso netcat (nc), pero tienes que tomar eso de "algún lugar", por lo que telnet está bien.
akira
1
@snark, ¿qué protocolo se utiliza para hacer esta prueba? TCP, UDP u otro?
Drake
Se utiliza TCP, ya que telnet establece una conexión. UDP no tiene conexión, por lo que no puede saber si alguien está escuchando o no.
Snark
Gracias. Entonces, ¿no hay forma de usar una herramienta para verificar si UDP está permitido en la salida en un puerto determinado? ¿Solo usando la aplicación deseada y ves que está funcionando?
Drake
3

nmap debería poder manejar esto.

CaseyIT
fuente
2
si pudiera proporcionar un ejemplo junto con esta sugerencia, sería genial. Tal vez algo como esto funcionaría:nmap -v IP_ADDRESS -Pn -p PORT
Chris
3

Puede usar iperf para verificar si los puertos UDP son accesibles o no.

Ejemplo: Prueba si el puerto 5093 UDP está abierto en el servidor remoto 10.0.0.1

C:\>iperf -u -p 5093 -c 10.0.0.1
------------------------------------------------------------
Client connecting to 10.0.0.1, UDP port 5093
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
[320] local 10.16.61.182 port 54574 connected with 10.0.0.1 port 5093
[ ID] Interval       Transfer     Bandwidth
[320]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[320] **Sent 893 datagrams**

Como puede ver, el cliente transfirió con éxito 893 datagramas, lo que significa que el puerto está abierto. En caso de que el firewall bloqueara el puerto, debería leer un mensaje como este:

Read failed: Connection reset by peer
Rafa Uemura
fuente