Generátor náhodných portů
Technické detaily
Jak funguje generátor náhodných portů
Co nástroj dělá
Generátor náhodných portů vybírá jedno nebo více čísel TCP/UDP portů z požadovaného rozsahu IANA pomocí crypto.getRandomValues() s nezaujatým odmítacím vzorkováním. Ve výchozím nastavení se vyhýbá jak dobře známým portům, tak i kurátorovanému seznamu široce používaných vývojových portů (3000, 8080, 5432, 6379 atd.), takže vygenerovaná čísla jsou okamžitě použitelná pro nové lokální služby.
Běžné případy použití pro vývojáře
Vývojáři, kteří spouštějí nové mikroservisy, stacky docker-compose nebo dočasná testovací prostředí, používají tento nástroj k výběru portů bez konfliktů bez přemýšlení. SRE týmy alokují porty pro nové interní služby bez ručního procházení tabulek IANA. „Ephemeral“ rozsah je ideální pro klientské TCP testovací harnessy, které potřebují krátkodobé sockety odpovídající chování produkčního kernelu.
Datové formáty, typy nebo varianty
K dispozici jsou tři předdefinované rozsahy: Well-known (1–1023), Registered / Unprivileged (1024–49151) a Dynamic / Ephemeral (49152–65535). Každé vygenerované číslo je opatřeno svou klasifikací. Seznam vyhýbaných běžných portů pokrývá HTTP/HTTPS, SSH, běžné databázové porty, běžné vývojové servery, message queue systémy a standardní cache služby.
Běžné nástrahy a okrajové případy
Náhodná alokace portu nekontroluje, zda je port na vašem počítači skutečně volný — to vyžaduje pokus o bind na úrovni OS. Seznam „vyhnout se běžným portům“ je kurátorovaný, nikoli vyčerpávající; některé oborové výchozí hodnoty (Cassandra 9042, Elasticsearch 9300 atd.) jsou označeny, ale vlastní interní služby se stále mohou střetnout. Pokud první volba koliduje s něčím lokálním, vygenerujte novou dávku.
Kdy použít tento nástroj vs. kód
Použijte nástroj v prohlížeči při konfiguraci jednorázové služby nebo při psaní ukázky. V automatizaci upřednostněte, aby port přiřadil OS (bind na port 0 a následně přečíst zvolenou hodnotu) — to zaručí, že port je skutečně volný, a vyhne se závodu mezi náhodným výběrem a bindem.