DevToys Web Pro iconDevToys Web ProBlog
Valóranos:
Prueba la extensión del navegador:

Generador de puertos aleatorios

  • Rango
    Cantidad
    2084Registered (IANA-assigned)
    37642Registered (IANA-assigned)
    6630Registered (IANA-assigned)
    23161Registered (IANA-assigned)
    63680Dynamic / 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 imparcial. De forma predeterminada evita tanto los puertos bien conocidos como una lista seleccionada de puertos de desarrollo ampliamente usados (3000, 8080, 5432, 6379, etc.), de modo que los números generados sean inmediatamente utilizables para nuevos servicios locales.

    Casos de uso comunes para desarrolladores

    Los desarrolladores que ponen en marcha nuevos microservicios, pilas 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 las tablas de IANA. El rango "ephemeral" es ideal para bancos de pruebas TCP del lado del cliente que necesitan sockets de corta duración que coincidan con el comportamiento del kernel en producción.

    Formatos de datos, tipos o variantes

    Hay tres rangos predefinidos disponibles: Well-known (1–1023), Registered / Unprivileged (1024–49151) y Dynamic / Ephemeral (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 de caché estándar.

    Errores comunes y casos límite

    La asignación aleatoria de puertos no comprueba si el puerto está realmente libre en tu máquina; eso requiere un intento de bind a nivel del sistema operativo. La lista de "evitar puertos comunes" está seleccionada, no es exhaustiva; algunos valores predeterminados específicos de la industria (Cassandra 9042, Elasticsearch 9300, etc.) están marcados, pero los servicios internos personalizados aún pueden entrar en conflicto. Genera un nuevo lote si la primera elecció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 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 esté realmente libre y evita cualquier carrera entre la selección aleatoria y el bind.