Cómo comprobar, abrir y cerrar puertos abiertos con el Firewall de Windows, desde CMD y con una aplicación gratis y portable
La mayoría de usuarios de Windows no entran en contacto con los puertos. Aunque algunos pueden ver puertos cuando configuran una dirección de correo electrónico, o cuando los puertos estándar como el 80 o 21 se mencionan en artículos de Internet, los puertos normalmente se ignoran. Por eso, cuando quieren comprobar, abrir y cerrar puertos en Windows, no saben cómo hacerlo.
En pocas palabras, los puertos permiten la comunicación entre el sistema operativo, las aplicaciones y los servicios, y otra cosa, como sitios de Internet o servidores de correo, por ejemplo. En definitiva, permiten cualquier conexión externa que nuestro sistema, las aplicaciones o los servicios deban establecer.
En Windows hay algunos puertos abiertos por defecto. Esto se hace generalmente con fines de compatibilidad para evitar problemas cuando se utilizan ciertos servicios. Sin embargo, es una buena idea cerrar puertos que no se usan, para endurecer el sistema y evitar ataques contra ellos.
¿Qué puertos abiertos tengo en Windows?
Hay varias maneras de saber qué puertos tienes abiertos en Windows y qué aplicaciones los están usando. Se puede ver una lista de los puertos abiertos sin instalar nada, empleando las herramientas integradas que utilizan la línea de comandos (CMD), o bien, instalando aplicaciones de terceros que ofrecen más detalles, además de una interfaz que te resultará mucho más sencilla que la propia línea de comandos.
Cómo saber los puertos abiertos desde CMD
Si queremos comprobar qué puertos abiertos tenemos en Windows por CMD, es decir, sin programas, podemos hacerlo de dos maneras, con dos comandos diferentes.
En primer lugar tenemos que abrir una línea de comandos en modo administrador. Podemos abrir una ventana CMD buscando "cmd" desde el menú de Inicio o el buscador de Cortana y ejecutando Símbolo del sistema. Como debemos ejecutarlo con permisos elevados, haz clic con el botón secundario del ratón y selecciona "Ejecutar como administrador".
En el símbolo del sistema escribe el siguiente comando y presiona Enter:
netstat -ab
Los resultados pueden tardar uno o dos minutos en aparecer por completo, así que ten paciencia. Cuando aparezcan, desplázate por la lista para encontrar el puerto (que se indica después de los dos puntos que siguen la dirección IP local) y el nombre del proceso que lo está utilizando.
En el ejemplo anterior, vemos que el rango de puertos del 6491 al 6507 están siendo utilizados por Skype.
El segundo comando, o mejor dicho, la segunda variante del comando "netstat", en lugar de mostrar el nombre del proceso que está utilizando un puerto para conectarse, muestra el PID, un número único que identifica cada proceso. Esto es útil cuando con el primer comando no somos capaces de identificar el proceso por su nombre.
Escribe el siguiente comando en símbolo del sistema y presiona Intro:
netstat -aon
La última columna enumera los PID:
En los siguientes apartados veremos cómo liberar un puerto en uso con el PID.
Aplicación para ver puertos abiertos en Windows
Si no te gusta el método de la línea de comandos, yo te recomiendo la excelente utilidad CurrPorts. Es una herramienta portable y gratuita que puedes empezar a utilizar justo después de haberla descargado. Solo asegúrate de descargar la versión que corresponda a la arquitectura de tu sistema operativo. Después, descomprimir la carpeta y hacer doble clic en el archivo ejecutable es todo lo que tienes que hacer.
CurrPorts enumera todos los programas y servicios en la interfaz. Todas las conexiones de Internet y todos los puertos locales que están abiertos en ese momento.
Ordena por la columna "Puerto local" o "Local port", busca el puerto que estás investigando y podrás ver un montón de detalles sobre él: nombre del proceso que lo está utilizando, PID, la ruta completa y más.
Para obtener más detalles aún, haz doble clic en cualquier proceso:
Cuando hayas localizado el puerto que estás investigando y la aplicación o servicio que lo está utilizando, tienes dos opciones: si es una aplicación y ésta lo permite, especificar un puerto diferente. Si es un servicio y no tienes ninguna posibilidad de cambiar el puerto, puedes detener el servicio para liberarlo.
Cómo liberar un puerto en uso desde CMD
Si estás intentando usar un puerto en alguna aplicación y obtienes un error de que ya está siendo utilizado, lo puedes liberar a través de CMD.
Para ello, usaremos la segunda variante del comando "netstat" que hemos visto en el apartado anterior para obtener todas las conexiones activas de nuestro sistema. Sin embargo, te voy a enseñar otro truco para que sea aún más fácil.
Cuando escribimos el comando "netstat -aon", nos muestra una lista completa de todas las conexiones y puertos activos de nuestro ordenador. En la lista pueden aparecer cientos de puertos y a veces puede ser complicado buscar un puerto en concreto entre todos los elemtnos. Por ello, podemos usar "findstr" para filtrar solo aquellas conexiones que están utilizando un puerto específico, en este caso el puerto a liberar. Te pongo un ejemplo:
netstat -aon | findstr :443
Como podrás intuir, lo que estamos haciendo en el ejemplo anterior es filtrar la lista de conexiones activas para mostrar solo las que están usando el puerto 443.
Por lo tanto, imaginemos que el comando anterior me devuelve solamente 1 conexión activa que se conecta a través del puerto 443. Para matar el proceso y que el puerto quede libre, solo tenemos que escribir el comando "taskkill" especificando su PID.
taskkill /pid 10720 /F
Después de ejecutarlo, el puerto 443 del ejemplo anterior quedaría libre y podríamos usarlo en otra aplicación.
Cómo abrir y cerrar puertos en Windows 10
Si lo que quieres es abrir o cerrar un puerto, lo puedes hacer desde el firewall. La mayoría de los cortafuegos personales, incluyendo el Firewall de Windows, permiten gestionar los puertos. También puedes acceder al router y hacerlo desde ahí, pero eso lo explicaré en otra ocasión.
Cerrar puertos mediante el Firewall de Windows
Puesto que cada router es distinto y es muy probable que, si explico cómo se gestionan los puertos en mi modelo de router, no te sirva de nada a menos que tengas el mismo que yo, voy a explicar cómo hacerlo desde el Firewall de Windows.
El proceso en sí es bastante sencillo. En primer lugar, dirígete al menú de inicio, escribe "firewall", y selecciona Windows Defender Firewall con seguridad avanzada.
En la nueva ventana, haz clic en Reglas de entrada y selecciona Nueva regla en el panel Acciones. A continuación, selecciona Puerto en el listado Tipo de regla.
Cuando vamos a abrir o cerrar algún puerto, debemos especificar si lo vamos a hacer para el protocolo TCP, UDP o para ambos. Selecciona TCP o UDP y especifica un puerto (ej. 443). También puedes ingresar varios puertos separados por coma o un rango de puertos (ej. 443-524).
Selecciona Bloquear la conexión o Permitir la conexión según lo que necesites y especifica cuándo debe aplicarse la regla. Si no estás seguro, deja el valor predeterminado.
Si vas a abrir un puerto en el Firewall de Windows que a su vez está cerrado en el router, no va a servir de nada. Si tienes dudas de que el permiso o bloqueo esté haciendo su trabajo, puedes utilizar el sitio web de Steve Gibson, donde puedes buscar puertos, obtener información sobre ellos y comprobar su estado.
Por último, añade un nombre y una descripción. Por ejemplo, "Puerto 443" y la razón por la que lo estás bloqueando.
En caso de que después de realizar el bloqueo de algún puerto haya alguna aplicación o servicio que no esté funcionando correctamente, es posible que ese puerto sea necesario. Puedes deshacer el bloqueo en cualquier momento eliminando la regla que has creado.
Aclarar que la herramienta CurrPorts de Nirsoft es muy posible que continúe revelando servicios o aplicaciones que están escuchando los puertos que has bloqueado. Sin embargo, eso no significa que sigan abiertos. Lo que sucede es que ahora se rechaza la conexión.
Abrir y cerrar puertos por CMD
Si lo prefieres, también puedes abrir y cerrar puertos desde CMD con el comando "netsh", una utilidad de línea de comandos incluida en Windows de forma nativa que nos permite configurar diferentes aspectos de nuestro adaptador de red.
Para comenzar, abre una ventana de CMD con privilegios administrativos e ingresa el siguiente comando:
netsh advfirewall firewall add rule name="Puerto TCP 443" dir=in action=allow protocol=TCP localport=443
El comando anterior añade una nueva regla de entrada para abrir el puerto 443 con el protocolo TCP y el nombre "Puerto TCP 443". Sabemos que lo está abriendo porque el contexto action es "allow" y no su opuesto "block".
Resetear puertos en Windows 10
Para resetear las reglas del Firewall de Windows a los valores de fábrica, puedes hacerlo de la siguiente manera:
- Abre el Panel de Control.
- Haz clic en Sistema y Seguridad.
- Selecciona Firewall de Windows Defender.
- En el panel izquierdo, haz clic en Restaurar valores predeterminados.
- Haz clic en Sí para confirmar.
Al hacerlo, todas las reglas configuradas en el Firewall de Windows para aplicaciones y puertos tanto manualmente como por medio de la ventana de "Alerta de seguridad de Windows" que te solicita acceso cuando se intenta establecer una conexión por primera vez, se eliminarán.
Si te ha gustado Cómo comprobar, abrir y cerrar puertos abiertos con el Firewall de Windows, desde CMD y con una aplicación gratis y portable y te gustaría seguir leyendo contenido similar, puedes visitar la categoría Seguridad. ¡Y no olvides dejar un comentario 🤗!
-
Excelente aporte, muy explicito y bien documentado,,,gracias y exitos
-
Excelente informacion, gracias
-
Excelente Info. Gracias amigo
-
cuando pongo netstat -a para ver que puertos hay abiertos no sale el que yo he abierto con netsh advfirewall firewall add rule name="Puerto TCP 443" dir=in action=allow protocol=TCP localport=443 (como ejemplo).
-
Asegurate de tenerlo abierto en el router no solo en el Firewall de Windows o CMD
-
5 Comentarios
Deja una respuesta
Podría interesarte