DevToys Web Pro iconDevToys Web ProBlog
Oceń nas:
Wypróbuj rozszerzenie przeglądarki:

Generator losowych portów

  • Zakres
    Liczba
    45679Registered (IANA-assigned)
    26420Registered (IANA-assigned)
    57154Dynamic / Ephemeral
    56713Dynamic / Ephemeral
    55938Dynamic / Ephemeral
    Szczegóły techniczne

    Jak działa generator losowych portów

    Co robi narzędzie

    Generator losowych portów wybiera jeden lub więcej numerów portów TCP/UDP z żądanego zakresu IANA, używając crypto.getRandomValues() z bezstronnym próbkowaniem odrzucającym. Domyślnie unika zarówno portów dobrze znanych, jak i wyselekcjonowanej listy powszechnie używanych portów deweloperskich (3000, 8080, 5432, 6379 itd.), dzięki czemu wygenerowane numery są od razu użyteczne dla nowych usług lokalnych.

    Typowe zastosowania dla programistów

    Deweloperzy uruchamiający nowe mikroserwisy, stosy docker-compose lub efemeryczne środowiska testowe używają narzędzia, aby bez zastanawiania się wybierać porty bez konfliktów. SRE przydzielają porty dla nowych usług wewnętrznych bez ręcznego przeglądania tabel IANA. Zakres „ephemeral” jest idealny dla klienckich harnessów testowych TCP, które potrzebują krótkotrwałych gniazd zgodnych z zachowaniem jądra w produkcji.

    Formaty danych, typy lub warianty

    Dostępne są trzy predefiniowane zakresy: Well-known (1–1023), Registered / Unprivileged (1024–49151) oraz Dynamic / Ephemeral (49152–65535). Każdy wygenerowany numer jest opatrzony adnotacją o swojej klasyfikacji. Lista unikania popularnych portów obejmuje HTTP/HTTPS, SSH, typowe porty baz danych, popularne serwery deweloperskie, kolejki wiadomości oraz standardowe usługi cache.

    Typowe pułapki i przypadki brzegowe

    Losowy przydział portu nie sprawdza, czy port jest faktycznie wolny na Twojej maszynie — wymaga to próby bindowania na poziomie systemu operacyjnego. Lista „unikaj popularnych portów” jest wyselekcjonowana, ale niepełna; niektóre branżowe domyślne porty (Cassandra 9042, Elasticsearch 9300 itd.) są oznaczone, ale niestandardowe usługi wewnętrzne nadal mogą kolidować. Wygeneruj nową paczkę, jeśli pierwszy wybór koliduje z czymś lokalnym.

    Kiedy używać tego narzędzia zamiast kodu

    Użyj narzędzia w przeglądarce podczas konfigurowania jednorazowej usługi lub pisania przykładu. W automatyzacji lepiej poprosić system operacyjny o przydzielenie portu (zbindować do portu 0 i odczytać wybraną wartość) — to gwarantuje, że port jest faktycznie wolny i eliminuje wyścig między losowym wyborem a bindowaniem.