Saltar al contenido

¿Cómo verificar si un puerto está bloqueado en una máquina con Windows?

Después de investigar en diferentes repositorios y páginas webs de internet al final nos hemos encontrado la resolución que te compartimos ahora.

Solución:

Solución 1:

Dado que está en una máquina con Windows, se pueden hacer estas cosas:

  • Ejecute el siguiente comando y busque un oyente “: 3306” (no mencionó UDP / TCP). Esto confirmará que algo se está ejecutando en el puerto.

    netstat -a -n

  • Después de esto, si espera conexiones entrantes en este puerto y cree que el firewall puede estar bloqueándolas, puede usar iniciar el registro del firewall de Windows y verifique los registros para ver si hay conexiones caídas

    • Vaya a Firewall de Windows, Configuración avanzada
    • Haga clic en el botón Configuración junto a “Conexión de área local”
    • Seleccione “Registrar paquetes perdidos”
    • Mire la ubicación del archivo de registro (si no está presente, defina uno)
    • Haga clic en Aceptar
    • Ahora, cuando se realiza el intento de conexión (suponiendo que sepa cuándo se hace), busque en el archivo de registro una caída en el puerto 3306.
    • Si se ve esto, querrá agregar una excepción para este puerto.
  • Hay un comando más para verificar el estado del firewall
    (Actualizado para usuarios de Windows 7, según lo indicado por Nick a continuación – use cortafuegos netsh advfirewall)

    cortafuegos netsh mostrar estado

    • esto enumerará los puertos bloqueados, así como los puertos de escucha activos con asociaciones de aplicaciones
  • Este comando volcará los detalles de configuración del firewall de Windows

    configuración de la demostración del cortafuegos de netsh


Si tiene un bloqueo activo (las conexiones entrantes están siendo descartadas por el firewall) después de comenzar a registrar, debería verlo en el registro.

Si está ejecutando una aplicación / servicio que está escuchando en 3306, el configuración de firewall debería mostrar que está habilitado. Si esto no se ve, probablemente no haya agregado una excepción con el firewall para permitir esta aplicación / servicio.

Finalmente, el puerto 3306 se usa típicamente para MySQL. Entonces, supongo que está ejecutando el servidor MySQL en esta máquina con Windows. Por lo tanto, debería ver un oyente para 3306 que acepte conexiones entrantes. Si no ve eso, primero debe trabajar con su aplicación (MySQL) para comenzar.

Solucion 2:

NETSTAT te dirá si el puerto es escuchando pero no te dirá si el puerto es abierto al mundo exterior. Lo que quiero decir con esto es que NETSTAT puede mostrar que 0.0.0.0 está ESCUCHANDO en el puerto 3306 pero un firewall aún puede estar bloqueando ese puerto lo que impide las conexiones externas; por lo que no es suficiente confiar en NETSTAT solo.

La mejor manera de verificar si un puerto está bloqueado es hacer un escaneo de puertos desde la máquina cliente.

Hay muchas formas de hacer un escaneo de puertos, pero como mencionaste estar en Windows, te sugeriré la utilidad de línea de comandos de Microsoft. PortQry y la versión gráfica PortQryUI

Para probar todos los puertos abiertos:

portqry.exe -n #.#.#.#   

Para probar un puerto específico:

portqry.exe -n #.#.#.# -e #

Por ejemplo, para probar la interfaz web de un enrutador en 192.168.1.1:

portqry.exe -n 192.168.1.1 -e 80

Que devuelve:

TCP port 80 (http service): LISTENING

Donde las pruebas en una máquina local sin HTTPD en ejecución devuelven:

TCP port 80 (http service): NOT LISTENING

Con una utilidad PortScan obtendrá uno de 3 resultados.

  • Listening significa que el servidor está escuchando en el puerto especificado
  • Filtered significa que recibió un paquete de acuse de recibo de TCP con el indicador de reinicio establecido, lo que probablemente indica un problema de firewall o software
  • Not Listening significa que no recibió ninguna respuesta

telnet es otra opción de línea de comando que generalmente se instala en el sistema operativo de forma predeterminada. Esta utilidad de línea de comando se puede utilizar de forma rápida para ver si un puerto responde a una solicitud de red.

Usar telnet simplemente emitiría el siguiente comando desde un símbolo del sistema:

telnet localhost 3306

El comando anterior debería darle una indicación rápida si el puerto 3306 sobre el localhost está respondiendo.


Solucion 3:

Desde PowerShell 4.0 puede usar el comando Test-NetConnection

Si desea probar el puerto 3306 como en su ejemplo, el comando es

Test-NetConnection -ComputerName localhost -Port 3306

Documentación de TechNet Test-NetConnection


Solucion 4:

Si puede hacer telnet al puerto desde la máquina local (utilizando la dirección IP externa), pero no desde otra máquina, entonces se está bloqueando en algún punto intermedio.

Tenga en cuenta que un firewall en su máquina local pudo prevenir incluso la primera acción.

Te mostramos las comentarios y valoraciones de los usuarios

Recuerda algo, que te permitimos glosar si diste con la solución.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *