DevToys Web Pro iconDevToys Web ProBlog
Valutaci:
Prova l'estensione del browser:

Generatore di porte casuali

  • Intervallo
    Numero
    58707Dynamic / Ephemeral
    43773Registered (IANA-assigned)
    7276Registered (IANA-assigned)
    1613Registered (IANA-assigned)
    20852Registered (IANA-assigned)
    Dettagli tecnici

    Come funziona il generatore di porte casuali

    Cosa fa lo strumento

    Il generatore di porte casuali seleziona uno o più numeri di porta TCP/UDP dall’intervallo IANA richiesto usando crypto.getRandomValues() con rejection sampling senza bias. Per impostazione predefinita evita sia le well-known ports sia un elenco curato di porte di sviluppo ampiamente usate (3000, 8080, 5432, 6379, ecc.), così i numeri generati sono immediatamente utilizzabili per nuovi servizi locali.

    Casi d’uso comuni per sviluppatori

    Gli sviluppatori che avviano nuovi microservizi, stack docker-compose o ambienti di test effimeri usano lo strumento per scegliere porte senza conflitti senza pensarci. Gli SRE allocano porte per nuovi servizi interni senza scansionare manualmente le tabelle IANA. L’intervallo “ephemeral” è ideale per harness di test TCP lato client che necessitano di socket di breve durata che rispecchino il comportamento del kernel in produzione.

    Formati, tipi o varianti dei dati

    Sono disponibili tre intervalli predefiniti: Well-known (1–1023), Registered / Unprivileged (1024–49151) e Dynamic / Ephemeral (49152–65535). Ogni numero generato è annotato con la sua classificazione. L’elenco “avoid-common-ports” copre HTTP/HTTPS, SSH, porte comuni di database, server di sviluppo comuni, code di messaggi e servizi di cache standard.

    Errori comuni e casi limite

    L’allocazione casuale delle porte non verifica se la porta è effettivamente libera sulla tua macchina — ciò richiede un tentativo di bind a livello di sistema operativo. L’elenco “avoid common ports” è curato, non esaustivo; alcuni default specifici del settore (Cassandra 9042, Elasticsearch 9300, ecc.) sono segnalati, ma servizi interni personalizzati possono comunque entrare in conflitto. Genera un nuovo batch se la prima scelta va in conflitto con qualcosa in locale.

    Quando usare questo strumento rispetto al codice

    Usa lo strumento nel browser quando configuri un servizio una tantum o scrivi un esempio. Nell’automazione, è preferibile chiedere al sistema operativo di assegnare una porta (bind sulla porta 0 e leggere il valore scelto) — questo garantisce che la porta sia davvero libera ed evita qualsiasi race tra selezione casuale e bind.