Learning Center
Sistema Linux

Cómo abrir un puerto en Linux

29 oct 2025
Awais Khan
Awais Khan

Abrir puertos en Linux es una tarea esencial que permite que ciertos servicios o aplicaciones intercambien datos a través de la red.
 

Los puertos actúan como canales de comunicación, permitiendo el acceso a servicios autorizados y bloqueando las conexiones no deseadas. Una correcta gestión de los puertos es clave para mantener seguridad, rendimiento estable y funcionamiento fiable del sistema.

Comprender los puertos y su función
Copiar enlace

Los puertos son puntos finales lógicos de comunicación de red, donde los dispositivos envían y reciben información.

Ejemplos comunes:

  • HTTP usa el puerto 80

  • HTTPS usa el puerto 443

  • SSH usa el puerto 22

Un puerto abierto indica que hay un servicio escuchando y aceptando tráfico entrante a través de él. Un puerto cerrado bloquea la comunicación. Gestionar correctamente los puertos abiertos en Linux es fundamental para mantener disponibilidad y seguridad.

Cómo comprobar los puertos abiertos en Linux
Copiar enlace

Antes de abrir un puerto, conviene verificar qué puertos están actualmente activos. Existen varias herramientas y comandos de Linux para hacerlo.

Con netstat
Copiar enlace

Ejecuta el siguiente comando para mostrar los puertos abiertos:

netstat -tuln
  • La opción -tuln limita la salida a puertos TCP y UDP, sin resolver nombres de host.

  • netstat ofrece una vista en tiempo real de las conexiones de red activas.

Image1

Nota: si netstat no está instalado:

sudo apt install net-tools

Con ss
Copiar enlace

El comando ss es una versión moderna y más rápida de netstat:

ss -tuln

Image3

Muestra los puertos en uso y la información de los sockets activos.

Con nmap
Copiar enlace

Para un análisis más detallado de los puertos abiertos:

nmap localhost

nmap analiza el host especificado (en este caso, localhost) y muestra los puertos accesibles. Es útil para identificar qué servicios están expuestos a la red pública.

Image2

Nota: instala nmap con:

sudo apt install nmap

Cómo abrir puertos en Linux
Copiar enlace

Para permitir el acceso a través de un puerto específico, es necesario modificar las reglas del firewall. Linux ofrece varias herramientas para gestionar esto: iptables, ufw y firewalld.

A continuación, te mostramos cómo usarlas.

Método 1: con iptables
Copiar enlace

iptables es una herramienta potente y de bajo nivel que proporciona control detallado sobre el tráfico de red.

Añadir una regla para permitir tráfico en un puerto

Ejemplo: habilitar acceso HTTP en el puerto 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Explicación:

  • sudo: ejecuta el comando con privilegios de administrador

  • -A INPUT: agrega la regla a la cadena de entrada (tráfico entrante)

  • -p tcp: aplica la regla al protocolo TCP

  • --dport 8080: especifica el puerto 8080

  • -j ACCEPT: acepta el tráfico que cumpla la regla

Estas reglas no son permanentes: se pierden al reiniciar el sistema.

Image5

sudo apt install iptables iptables-persistent

Guardar la configuración

Para hacer que las reglas persistan después del reinicio:

sudo netfilter-persistent save

Image4

Esto almacena las reglas actuales para que se apliquen automáticamente al reiniciar.

Recargar la configuración

sudo netfilter-persistent reload

Image7

Método 2: con ufw (Uncomplicated Firewall)
Copiar enlace

ufw es una interfaz simplificada para iptables que facilita la gestión de reglas del firewall.

Activar ufw

sudo ufw enable

Image6

Si no está instalado:

sudo apt install ufw

Permitir tráfico por un puerto específico

Ejemplo: abrir la puerta 22 (SSH):

sudo ufw allow 22/tcp

Esto permite conexiones TCP entrantes al puerto 22, generalmente usadas para acceso remoto SSH.

Image9

Ver el estado del firewall

sudo ufw status

Muestra todas las reglas activas y los puertos abiertos.

Image8

Método 3: con firewalld
Copiar enlace

firewalld es un servicio de firewall dinámico más flexible y fácil de configurar que iptables.

Agregar una regla permanente

Ejemplo: abrir la puerta 443 (HTTPS):

sudo firewall-cmd --permanent --add-port=443/tcp

Image12

Instala y activa firewalld con:

sudo apt install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld

Recargar las reglas

sudo firewall-cmd --reload

Image10

Comprobar si el puerto está abierto

sudo firewall-cmd --list-all

Muestra todas las zonas y reglas activas, incluidas las puertas abiertas.

Image11

Cómo probar el puerto abierto
Copiar enlace

Después de abrir un puerto, verifica si realmente está accesible.

Con telnet
Copiar enlace

telnet localhost port_number

Si la conexión se establece, el puerto está abierto y operativo.

Image13

Con nmap
Copiar enlace

nmap -p port_number localhost

Verifica si el puerto especificado está accesible en el host local.

Image14

Con curl
Copiar enlace

curl localhost:port_number

Si el servicio responde, significa que está activo en esa puerta.

Image15

Solución de problemas comunes
Copiar enlace

Si el puerto no se abre correctamente:

Verifica las reglas del firewall:

  • iptables -L
  • ufw status

Comprueba el estado del servicio:

  • systemctl status <nombre_del_servicio>

Abrir puertos según el protocolo
Copiar enlace

Dependiendo del servicio, puede ser necesario usar TCP o UDP.

Abrir un puerto TCP
Copiar enlace

Ejemplo: permitir tráfico MySQL en el puerto 3306:

sudo ufw allow 3306/tcp

Image16

Abrir un puerto UDP
Copiar enlace

Ejemplo: permitir tráfico SNMP en el puerto 161:

sudo ufw allow 161/udp

Image17

UDP proporciona comunicación más rápida y sin conexión, ideal para herramientas de monitoreo.

Gestionar el acceso a los puertos
Copiar enlace

Restringir el acceso a una IP específica

sudo ufw allow from 192.168.1.100 to any port 22

Esto permite acceso SSH al puerto 22 solo desde esa dirección IP, mejorando la seguridad.

Image18

Cerrar un puerto
Copiar enlace

sudo ufw deny 80/tcp

Bloquea el tráfico entrante por el puerto 80 (HTTP).

Image19

Conclusión
Copiar enlace

Comprobar y abrir puertos en Linux es fundamental para optimizar el funcionamiento de red y mantener la seguridad de los servicios. Con herramientas como iptables, ufw y firewalld, puedes controlar el tráfico de forma segura y flexible. Siempre prueba tus configuraciones con nmap, curl o telnet para confirmar que el puerto está correctamente abierto.

Una buena gestión de puertos garantiza servidores estables, conexiones seguras y un rendimiento confiable.