DevToys Web Pro iconDevToys Web ProBlog
Califícanos:
Prueba la extensión del navegador:

Generador de puertos aleatorios

  • Rango
    Cantidad
    39056Registered (IANA-assigned)
    39250Registered (IANA-assigned)
    50477Dynamic / Ephemeral
    10165Registered (IANA-assigned)
    49218Dynamic / Ephemeral
    Detalles técnicos

    Cómo funciona el generador de puertos aleatorios

    Qué hace la herramienta

    El Generador de Puertos Aleatorios elige uno o más números de puerto TCP/UDP del rango IANA solicitado usando crypto.getRandomValues() con muestreo por rechazo sin sesgo. De forma predeterminada evita tanto los puertos bien conocidos como una lista curada de puertos de desarrollo ampliamente usados (3000, 8080, 5432, 6379, etc.), para que los números generados sean utilizables de inmediato para nuevos servicios locales.

    Casos de uso comunes para desarrolladores

    Los desarrolladores que levantan nuevos microservicios, stacks de docker-compose o entornos de prueba efímeros usan la herramienta para elegir puertos sin conflictos sin pensarlo. Los SRE asignan puertos para nuevos servicios internos sin escanear manualmente tablas IANA. El rango "efímero" es ideal para harnesses de prueba TCP del lado del cliente que necesitan sockets de corta duración que coincidan con el comportamiento del kernel en producción.

    Formatos, tipos o variantes de datos

    Hay tres rangos predefinidos disponibles: Bien conocidos (1–1023), Registrados / Sin privilegios (1024–49151) y Dinámicos / Efímeros (49152–65535). Cada número generado se anota con su clasificación. La lista de evitar-puertos-comunes cubre HTTP/HTTPS, SSH, puertos comunes de bases de datos, servidores de desarrollo comunes, colas de mensajes y servicios estándar de caché.

    Errores comunes y casos límite

    La asignación aleatoria de puertos no verifica si el puerto realmente está libre en tu máquina; eso requiere un intento de bind a nivel del sistema operativo. La lista de "evitar puertos comunes" está curada, no es exhaustiva; algunos valores predeterminados específicos de la industria (Cassandra 9042, Elasticsearch 9300, etc.) se marcan, pero servicios internos personalizados aún pueden chocar. Genera un nuevo lote si la primera opción entra en conflicto con algo local.

    Cuándo usar esta herramienta vs código

    Usa la herramienta del navegador al configurar un servicio puntual o al escribir un ejemplo. En automatización, es preferible pedirle al sistema operativo que asigne un puerto (hacer bind al puerto 0 y leer el valor elegido): esto garantiza que el puerto realmente esté libre y evita cualquier carrera entre la selección aleatoria y el bind.