En la plataforma de Windows, ¿qué opciones nativas tengo que verificar si un puerto (3306, por ejemplo) en mi máquina local (como en localhost
) está siendo bloqueado?
windows
networking
firewall
port
Boris Pavlović
fuente
fuente
Respuestas:
Como estás en la máquina Windows, estas cosas se pueden hacer,
Ejecute el siguiente comando y busque un escucha ": 3306" (no mencionó UDP / TCP). Esto confirmará que hay algo ejecutándose en el puerto.
netstat -a -n
Después de esto, si espera conexiones entrantes en este puerto y siente que el firewall puede estar bloqueándolas, puede iniciar el registro del firewall de Windows y verificar los registros de conexiones caídas.
Hay un comando más para verificar el estado del firewall
(Actualización para usuarios de Windows 7 - como se menciona a
Nick
continuación - use el firewall netsh advfirewall )estado de la demostración del cortafuegos de netsh
Este comando volcará los detalles de configuración del firewall de Windows
netsh firewall show config
Si tiene un bloqueo activo (el firewall corta las conexiones entrantes) después de iniciar el registro, debería verlo en el registro.
Si está ejecutando una aplicación / servicio que está escuchando en 3306, la configuración del firewall debe mostrar que está habilitado. Si esto no se ve, probablemente haya olvidado agregar una excepción con el firewall para permitir esta aplicación / servicio.
Finalmente, el puerto 3306 se usa típicamente para MySQL. Por lo tanto, supongo que está ejecutando el servidor MySQL en esta máquina con Windows. Por lo tanto, debería ver un oyente para 3306 aceptando conexiones entrantes. Si no ve eso, debe trabajar con su aplicación (MySQL) para comenzar primero.
fuente
|find "3306"
al comando, por ejemploC:\Windows\System32>netstat -an |find "3306"
NETSTAT
le dirá si el puerto está escuchando, pero no le dirá si el puerto está abierto al mundo exterior. Lo que quiero decir con esto es queNETSTAT
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; entonces no es suficiente confiarNETSTAT
solo.La mejor manera de verificar si un puerto está bloqueado es hacer un escaneo de puertos desde la máquina del cliente.
Hay muchas formas de hacer un escaneo de puertos, pero dado que mencionó estar en Windows, sugeriré la utilidad de línea de comandos de Microsoft
PortQry
y la versión gráfica PortQryUIPara probar todos los puertos abiertos:
Para probar un puerto específico:
Por ejemplo, para probar la interfaz web de un enrutador en 192.168.1.1:
Que devuelve:
Donde como prueba en una máquina local sin HTTPD en ejecución devuelve:
Usando una utilidad PortScan obtendrá uno de 3 resultados.
Listening
significa que el servidor está escuchando en el puerto especificadoFiltered
significa que recibió un paquete de confirmación de TCP con el conjunto de indicadores de reinicio que probablemente indica un problema de firewall o softwareNot Listening
significa que no recibió ninguna respuestatelnet
es otra opción de línea de comando que generalmente se instala en el sistema operativo de manera predeterminada. Esta utilidad de línea de comandos se puede usar de manera rápida para ver si un puerto responde a una solicitud de red.Para usarlo
telnet
, simplemente emitiría el siguiente comando desde un símbolo del sistema:El comando anterior debería darle una indicación rápida si el puerto
3306
en ellocalhost
está respondiendo.fuente
Desde PowerShell 4.0 puede usar el comando
Test-NetConnection
Si desea probar el puerto 3306 como en su ejemplo, el comando es
Documentación de TechNet Test-NetConnection
fuente
Si puede hacer telnet al puerto desde la máquina local (usando 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 podría evitar incluso la primera acción.
fuente