¿Qué es un puerto? Explicación sencilla de redes
Un puerto de red es una puerta numerada que permite a un equipo ejecutar muchos servicios de red a la vez. Qué son los puertos, por qué existen y cómo funciona la numeración, con ejemplos reales.
Tu Mac tiene una sola dirección IP, pero ejecuta decenas de servicios de red al mismo tiempo: un navegador, un cliente de correo, un servidor de desarrollo, compartir archivos, AirPlay. Entonces, ¿cómo sabe cada dato entrante a qué programa pertenece? La respuesta son los puertos.
La analogía del edificio de apartamentos
Piensa en una dirección IP como la dirección postal de un edificio. Lleva los datos al equipo correcto, pero un edificio tiene muchos apartamentos. El número de puerto es el número de apartamento: le dice al dato a qué programa concreto dentro del equipo debe entregarse.
- Dirección IP → qué equipo (p. ej.
192.168.1.5) - Número de puerto → qué programa en ese equipo (p. ej.
443para el servidor web)
Juntos forman un socket: 192.168.1.5:443. Ese par identifica de forma única un extremo de una conversación de red.
Por qué existen los puertos
Sin puertos, un equipo solo podría ejecutar un servicio de red a la vez. No podrías navegar mientras revisas el correo y ejecutas una base de datos local: todo ese tráfico llegaría a la misma dirección sin forma de ordenarlo.
Los puertos resuelven esto dándole a cada servicio su propio número. Cuando llega un paquete, el sistema operativo lee el puerto de destino y entrega los datos al programa que esté escuchando ahí. Una IP, miles de puertos posibles, muchos servicios funcionando en paralelo.
Cómo funcionan los números de puerto
Un número de puerto es un entero de 16 bits, lo que significa que va de 0 a 65535, dando 65 536 puertos posibles. Se dividen en tres rangos definidos por la IANA (el organismo que los coordina):
| Rango | Nombre | Para qué se usa |
|---|---|---|
| 0–1023 | Puertos bien conocidos | Servicios estándar (HTTP, SSH, DNS) |
| 1024–49151 | Puertos registrados | Apps que registraron un número (PostgreSQL, MySQL) |
| 49152–65535 | Dinámicos / efímeros | Puertos temporales para conexiones salientes |
Algunos que reconocerás:
- 80 → HTTP (web)
- 443 → HTTPS (web segura)
- 22 → SSH (acceso remoto)
- 53 → DNS (resolución de nombres de dominio)
- 3000 → puerto por defecto habitual de servidores de desarrollo
- 5432 → PostgreSQL
Profundizamos en los rangos en Rangos de números de puerto explicados, y puedes buscar cualquier número concreto en la referencia de puertos.
Escuchar vs. conectar
Un puerto puede estar haciendo una de dos cosas:
- Escuchando: un programa ha reclamado el puerto y espera conexiones entrantes. Un servidor web escucha en el 443.
- Conectando: un programa contacta con un puerto de otro equipo. Tu navegador se conecta al puerto 443 de un sitio web, usando un puerto efímero temporal en tu extremo como dirección de retorno.
Por eso verás dos tipos de entradas al inspeccionar tus puertos: unos pocos servicios en estado LISTEN y muchas conexiones salientes de corta duración que usan puertos efímeros de número alto.
Puertos TCP vs. puertos UDP
Los números de puerto existen por separado para cada protocolo de transporte. El puerto 53 en TCP y el puerto 53 en UDP son técnicamente puertos distintos, y DNS de hecho usa ambos. La mayoría de los servicios eligen un protocolo: el tráfico web es TCP, las consultas DNS suelen ser UDP. Consulta TCP vs UDP para ver en qué se diferencian.
“Solo un programa por puerto”
Esta es la regla que más confusión causa: en un mismo protocolo, solo un programa puede escuchar en un puerto a la vez. Si un proceso ya está vinculado al puerto 3000 y otro intenta tomarlo, el segundo falla con un error como address already in use o EADDRINUSE.
Por eso los errores de “puerto en uso” ocurren tan a menudo en desarrollo: dos cosas quieren el mismo número. La solución es averiguar qué retiene el puerto y detenerlo o mover tu app a otro puerto. Consulta Puerto en uso en Mac para el paso a paso.
Cómo ver los puertos de tu propio Mac
El comando en la terminal es:
sudo lsof -iTCP -sTCP:LISTEN -n -P
Esto lista cada programa que está escuchando conexiones, el puerto que ocupa y su ID de proceso.
Ve tus puertos sin la terminal
Portie convierte ese comando en una ventana en vivo. Muestra cada puerto abierto en tu Mac, la app que lo ocupa, el protocolo y el estado de la conexión, actualizado automáticamente cada 3 segundos. Sin comandos que memorizar.
El monitoreo local es gratuito. El desbloqueo de $8.99 (pago único) agrega la terminación de procesos con un clic y el escaneo remoto de puertos para otros hosts en tu red. Descarga Portie para ver qué está escuchando realmente tu Mac.