Redes / Rangos de puertos conocidos, registrados y dinámicos
Los puertos de red se numeran del 0 al 65535. IANA los divide en conocidos (0–1023), registrados (1024–49151) y dinámicos o privados (49152–65535). Estos rangos describen la asignación de números; un puerto por sí solo no identifica el programa que comunica ni determina lo que debe permitir un firewall.
Los tres rangos de puertos
La Internet Assigned Numbers Authority (IANA) mantiene el registro de nombres de servicio y puertos por protocolo de transporte. Los rangos definidos en RFC 6335 son los siguientes.
| Categoría | Números | Significado |
|---|---|---|
| Puertos conocidos System / Well-Known Ports |
0~1023 | Números de servicio asignados mediante los procedimientos más estrictos de IANA para puertos del sistema |
| Puertos registrados User / Registered Ports |
1024~49151 | Rango de números de servicio registrados y asignados por IANA |
| Puertos dinámicos o privados Dynamic / Private Ports |
49152~65535 | Uso local y dinámico; IANA no los asigna como identificadores de servicio |
No todos los números del rango registrado están realmente registrados. Distingue asignados, sin asignar y reservados. Aunque 0 forma parte del espacio numérico, el registro IANA lo reserva tanto para TCP como para UDP; no es un ejemplo de puerto de servicio ordinario.
Por qué considerar el número junto con TCP o UDP
Una dirección IP indica origen o destino; el puerto ayuda a distinguir el servicio o socket que trata la comunicación en esa dirección. TCP (Transmission Control Protocol, protocolo de control de transmisión) y UDP (User Datagram Protocol, protocolo de datagramas de usuario) tienen espacios de numeración separados. TCP 53 y UDP 53 requieren comprobaciones distintas aunque compartan número.
Entre los ejemplos habituales están HTTP en TCP 80, HTTPS en TCP 443 y SSH (Secure Shell) en TCP 22. DNS (Domain Name System, sistema de nombres de dominio) usa el puerto 53 con TCP y UDP. En el rango registrado encontramos MySQL en TCP 3306 y escritorio remoto en TCP 3389. Son usos representativos, no una lista completa de transportes registrados ni un sustituto de la configuración real.
Un servidor puede escuchar en otro número y otro programa puede usar uno conocido. Un TCP 3306 abierto no demuestra por sí solo que haya MySQL ni que el tráfico sea seguro. IANA también aclara que el registro no avala productos ni garantiza que el tráfico corresponda al servicio asignado.
Puertos del servidor y puertos efímeros del cliente
Cuando un cliente se conecta al TCP 443 del servidor, ambos extremos no usan necesariamente 443. El ejemplo hipotético siguiente supone el puerto de origen 51514. Los números reales dependen del sistema y la conexión.
TCP: client:51514 -> server:443
TCP: server:443 -> client:51514
El 443 del servidor es el puerto de destino del servicio; el 51514 del cliente es su puerto local efímero. En la respuesta se invierten origen y destino. Una conexión TCP se distingue por el protocolo y los pares de dirección IP y puerto de ambos extremos: un puerto no implica una única conexión.
“Privado” no significa dirección IP privada ni bloqueo automático desde el exterior. Tampoco garantiza que un número esté siempre libre. Si un dispositivo o la traducción de direcciones de red intermedia (NAT, Network Address Translation) modifica direcciones o puertos, los datos observados pueden variar según el punto de captura.
Consultar el rango efímero real del sistema
Distingue el rango dinámico IANA del que selecciona automáticamente el sistema operativo. La documentación de Microsoft sobre puertos dinámicos describe el valor predeterminado 49152–65535 desde Windows Vista y Server 2008, pero consulta el dispositivo para confirmar su configuración actual.
En Windows, ejecuta estas consultas en PowerShell o Símbolo del sistema. Comprueba IPv4, IPv6, TCP y UDP por separado. Los comandos no cambian la configuración.
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
Lee el puerto inicial y la cantidad de puertos. Con inicio 49152 y cantidad 16384, el último es 49152 + 16384 - 1 = 65535. No confundas cantidad con número final. El resultado describe la selección automática y no garantiza que cada número esté disponible actualmente.
En Linux, lee el archivo siguiente para consultar el rango local. Ejecuta la consulta en el entorno Linux que realmente realiza la comunicación.
cat /proc/sys/net/ipv4/ip_local_port_range
Los dos enteros son el primer y el último puerto. La documentación del kernel Linux sobre ip_local_port_range indica los valores predeterminados 32768 y 60999; la distribución y configuración pueden variar. Los puertos reservados también influyen en la asignación automática, por lo que no todo el rango es necesariamente seleccionable.
Comprobaciones de conexión y firewall
- Define destino y protocolo. Identifica IP del servidor, TCP o UDP y puerto de destino. Compara el registro IANA con la configuración efectiva del servicio.
- Comprueba dónde escucha el servidor. Una aplicación activa puede escuchar en otro puerto o solo en una dirección local. Software instalado no equivale a servicio escuchando en la dirección y puerto deseados.
- Examina la ruta. Revisa firewalls del sistema y la red, reglas de nube, redirección de puertos y NAT. Especifica dirección del tráfico, origen y destino; conocer el rango efímero no justifica exponerlo entero.
- Verifica con la aplicación real. Una conexión TCP correcta no demuestra autenticación ni funcionamiento del servicio. No apliques resultados TCP a UDP; utiliza una comprobación apropiada para el servicio.




