Validador de Puertos
Valida numeros de puerto (0-65535)
Quick Port Lookup
Batch Validation
Results
Validation results will appear here
Port Ranges
El Port Validator verifica si un valor dado es un número de puerto TCP/UDP válido dentro del rango permitido de 0 a 65535, identifica la categoría del puerto y muestra el nombre del servicio asociado para puertos bien conocidos. Ingresa un valor como 443 o 65536 para confirmar instantáneamente si es un puerto válido y ver su clasificación.
Entendiendo los números de puerto
Cada conexión de red en una red TCP/IP usa números de puerto para dirigir el tráfico a la aplicación correcta. Cuando tu navegador se conecta a un servidor web, alcanza el puerto 443 para HTTPS. Cuando haces SSH a un servidor, te conectas al puerto 22. Cuando tu servidor de correo envía email, se conecta al puerto 25 o 587. Los números de puerto son el mecanismo de direccionamiento que permite a un solo servidor ejecutar docenas de servicios simultáneamente, cada uno escuchando en un puerto diferente.
Los números de puerto se almacenan como enteros sin signo de 16 bits en los headers de paquetes TCP y UDP, lo que significa que el rango válido es exactamente de 0 a 65535. Cualquier valor fuera de este rango no es solo poco convencional -- es físicamente imposible de representar en el protocolo. Una regla de firewall que referencia el puerto 70000 será silenciosamente ignorada o causará un error, dependiendo del sistema. Un archivo de configuración con el puerto 443.0 (un float en lugar de un entero) se comportará de manera impredecible. Estos son exactamente el tipo de errores que este validador detecta antes de que lleguen a producción.
Los 65536 puertos en el rango válido se dividen en tres categorías por IANA (Internet Assigned Numbers Authority). Los puertos bien conocidos (0-1023) están asignados a protocolos comunes y requieren privilegios de root para enlazar en sistemas Unix. Los puertos registrados (1024-49151) están asignados a aplicaciones específicas pero no requieren privilegios elevados. Los puertos dinámicos o efímeros (49152-65535) son usados por el sistema operativo para conexiones salientes temporales. Entender en qué categoría cae un puerto te ayuda a evaluar si es apropiado para tu caso de uso y si tu aplicación necesitará privilegios especiales para usarlo.
Cómo validar un número de puerto
- Ingresa el número de puerto que quieres validar
- El validador verifica si el valor es un entero dentro de
0-65535 - El puerto se categoriza en su rango estándar (bien conocido, registrado o dinámico)
- Si el puerto es un puerto bien conocido, se muestra el nombre del servicio asociado
- Se indican cualquier consideración especial (por ejemplo, puerto
0, puertos privilegiados)
Categorías de rangos de puertos
| Rango | Nombre | Descripción | Privilegio Requerido |
|---|---|---|---|
0-1023 | Puertos Bien Conocidos | Asignados por IANA a protocolos comunes | Root/admin en Unix |
1024-49151 | Puertos Registrados | Asignados a aplicaciones específicas | No |
49152-65535 | Puertos Dinámicos/Efímeros | Conexiones temporales del lado del cliente | No |
Asignaciones comunes de puertos bien conocidos
| Puerto | Servicio | Protocolo |
|---|---|---|
20 | FTP (data) | TCP |
21 | FTP (control) | TCP |
22 | SSH | TCP |
23 | Telnet | TCP |
25 | SMTP | TCP |
53 | DNS | TCP/UDP |
67/68 | DHCP | UDP |
80 | HTTP | TCP |
110 | POP3 | TCP |
143 | IMAP | TCP |
443 | HTTPS | TCP |
993 | IMAPS | TCP |
3306 | MySQL | TCP |
3389 | RDP | TCP |
5432 | PostgreSQL | TCP |
6379 | Redis | TCP |
8080 | HTTP Alternate | TCP |
8443 | HTTPS Alternate | TCP |
Ejemplos de validación
| Entrada | ¿Válido? | Categoría | Notas |
|---|---|---|---|
443 | Sí | Bien conocido | HTTPS |
8080 | Sí | Registrado | HTTP alternate |
55000 | Sí | Dinámico | Puerto efímero |
65535 | Sí | Dinámico | Puerto válido máximo |
65536 | No | -- | Excede el rango de 16 bits |
-1 | No | -- | Valor negativo |
80.5 | No | -- | No es un entero |
0 | Sí | Bien conocido | Especial: efímero asignado por el sistema |
abc | No | -- | Entrada no numérica |
Cuándo usar el Port Validator
- Scripting de reglas de firewall para validar valores de puertos antes de aplicarlos a iptables, nftables o security groups en la nube
- Validar entrada de usuario en aplicaciones web o interfaces de configuración que aceptan números de puerto
- Revisar archivos de configuración para detectar errores tipográficos como dígitos extra (
44333en lugar de443) o números transpuestos - Verificar especificaciones de puertos de documentación externa, tickets o requisitos de proveedores
- Auditar reglas de security groups para asegurar que todos los puertos referenciados estén dentro del rango válido
- Enseñanza y aprendizaje de fundamentos de puertos TCP/UDP y asignaciones de servicios IANA
Cómo funcionan los números de puerto TCP/UDP
La limitación de 16 bits
Los números de puerto se almacenan como enteros sin signo de 16 bits en los headers TCP y UDP, dando un valor máximo de 2^16 - 1 = 65535. Cualquier valor fuera de 0-65535 es inválido a nivel de protocolo y será rechazado por los sistemas operativos y stacks de red.
Puerto 0 -- Comportamiento especial
El puerto 0 es técnicamente válido pero tiene un significado especial. Cuando un programa se enlaza al puerto 0, el sistema operativo asigna un puerto efímero disponible automáticamente. No es válido como puerto de destino en la mayoría de las configuraciones y debería marcarse en reglas de firewall o definiciones de servicio. Nunca configurarías intencionalmente un servidor web para escuchar en el puerto 0.
Puertos privilegiados en Unix/Linux
En sistemas tipo Unix, enlazar a puertos 0-1023 requiere privilegios de root (o la capability CAP_NET_BIND_SERVICE en Linux). Esta es una medida de seguridad para evitar que usuarios sin privilegios suplanten servicios del sistema como SSH (22) o HTTP (80).
Independencia de puertos TCP y UDP
TCP y UDP mantienen espacios de números de puerto completamente independientes. El puerto 53 en TCP es técnicamente un puerto diferente del puerto 53 en UDP, aunque DNS convencionalmente usa ambos. En la práctica, la mayoría de los servicios que usan ambos protocolos usan el mismo número de puerto en cada uno, pero el validador verifica el número en sí -- el rango de validez (0-65535) es idéntico para ambos protocolos.
Selección de puertos en la práctica
Al elegir un puerto para una nueva aplicación, el enfoque más seguro es elegir un puerto registrado que no esté ya en uso en tu servidor. Las convenciones comunes para desarrollo y pruebas incluyen puertos en el rango 3000-3999 (popular con frameworks Node.js y Ruby), rango 8000-8999 (popular con aplicaciones Python y Java), y rango 9000-9999 (herramientas de monitoreo y métricas). Verifica el registro de IANA antes de comprometerte con un puerto para evitar conflictos con servicios bien conocidos que otros administradores podrían esperar encontrar en ese puerto.
Un error común es codificar en duro el puerto 80 o 443 en una aplicación y luego preguntarse por qué falla cuando se despliega sin privilegios de root. La práctica moderna es ejecutar tu aplicación en un puerto sin privilegios (como 8080 o 8443) y usar un reverse proxy (nginx, HAProxy o un load balancer en la nube) para manejar el tráfico en los puertos 80 y 443. El reverse proxy se ejecuta como root o tiene la capability CAP_NET_BIND_SERVICE, así que puede enlazar a puertos privilegiados, mientras tu aplicación se ejecuta como usuario regular por seguridad.
Otra trampa común es usar accidentalmente un puerto efímero en una configuración de servidor. Si configuras tu aplicación para escuchar en el puerto 55000, funcionará -- pero los puertos efímeros (49152-65535) son el rango que el sistema operativo usa para conexiones salientes. En un servidor ocupado, el OS podría intentar asignar el puerto 55000 a una conexión saliente y fallar porque tu aplicación ya está enlazada a él. Usa el rango registrado (1024-49151) para aplicaciones de servidor para evitar este conflicto.
Preguntas frecuentes
¿Por qué mi aplicación falla al enlazar al puerto 80?
En sistemas Unix/Linux, los puertos por debajo de 1024 son privilegiados y requieren acceso root. Ejecuta la aplicación como root, usa setcap para otorgar CAP_NET_BIND_SERVICE, o configura un reverse proxy en un puerto más alto. En Windows, no existe tal restricción por defecto.
¿Es válido el puerto 65536?
No. Los números de puerto son enteros sin signo de 16 bits, así que el máximo es 65535. El valor 65536 excede el límite del protocolo y será rechazado por cualquier stack de red correctamente implementado.
¿Cuál es la diferencia entre puertos TCP y UDP?
TCP y UDP mantienen espacios de puertos separados. El puerto 53 para TCP (DNS sobre TCP) y el puerto 53 para UDP (DNS estándar) son técnicamente puertos diferentes, aunque convencionalmente son usados por el mismo servicio. La validez de un número de puerto (0-65535) es la misma independientemente del protocolo.
¿Pueden dos aplicaciones escuchar en el mismo puerto?
Generalmente no -- solo un proceso puede enlazar a un puerto específico en una dirección IP específica a la vez. Sin embargo, si tu servidor tiene múltiples direcciones IP, diferentes aplicaciones pueden escuchar en el mismo número de puerto en diferentes IPs. La opción de socket SO_REUSEPORT en Linux también permite que múltiples procesos compartan un puerto para propósitos de balanceo de carga.
¿Qué pasa si uso un puerto que está asignado a otro servicio?
Nada impide que uses cualquier número de puerto válido para cualquier propósito. Las asignaciones de puertos de IANA son convenciones, no restricciones forzadas. Sin embargo, usar el puerto 22 para un servidor web o el puerto 80 para SSH confundirá a otros administradores y puede entrar en conflicto con herramientas que asumen asignaciones de puertos estándar. Sigue las convenciones a menos que tengas una razón específica para no hacerlo.
Herramientas relacionadas
- Port List Expander - Expandir rangos de puertos a puertos individuales
- Port List Compressor - Comprimir listas de puertos en rangos
- Protocol/Port Template Builder - Construir reglas de firewall desde plantillas CSV
- URL Parser - Analizar URLs en esquema, host, puerto, ruta y query
- URL Normalizer - Normalizar URLs eliminando valores predeterminados y ordenando parámetros