DevToys Web Pro iconDevToys Web ProБлог
Оцініть нас:
Спробуйте розширення для браузера:

Генератор випадкових портів

  • Діапазон
    Кількість
    63696Dynamic / Ephemeral
    40753Registered (IANA-assigned)
    39602Registered (IANA-assigned)
    3317Registered (IANA-assigned)
    2438Registered (IANA-assigned)
    Технічні деталі

    Як працює генератор випадкових портів

    Що робить інструмент

    Генератор випадкових портів обирає один або кілька номерів TCP/UDP-портів із запитаного діапазону IANA, використовуючи crypto.getRandomValues() з неупередженим відбором із відхиленням. За замовчуванням він уникає як well-known портів, так і підібраного списку широко вживаних портів для розробки (3000, 8080, 5432, 6379 тощо), тож згенеровані номери одразу придатні для нових локальних сервісів.

    Поширені сценарії використання для розробників

    Розробники, які піднімають нові мікросервіси, стеки docker-compose або тимчасові тестові середовища, використовують інструмент, щоб без роздумів обирати порти без конфліктів. SRE виділяють порти для нових внутрішніх сервісів без ручного перегляду таблиць IANA. Діапазон 'ephemeral' ідеально підходить для клієнтських TCP тестових хелперів, яким потрібні короткоживучі сокети, що відповідають поведінці продакшн-ядра.

    Формати даних, типи або варіанти

    Доступні три попередньо визначені діапазони: Well-known (1–1023), Registered / Unprivileged (1024–49151) і Dynamic / Ephemeral (49152–65535). Кожне згенероване число позначається своєю класифікацією. Список avoid-common-ports охоплює HTTP/HTTPS, SSH, поширені порти баз даних, типові dev-сервери, черги повідомлень і стандартні кеш-сервіси.

    Поширені помилки та крайові випадки

    Випадкове виділення порту не перевіряє, чи порт справді вільний на вашій машині — для цього потрібна спроба bind на рівні ОС. Список 'avoid common ports' підібраний, але не вичерпний; деякі галузеві значення за замовчуванням (Cassandra 9042, Elasticsearch 9300 тощо) позначені, але кастомні внутрішні сервіси все одно можуть конфліктувати. Згенеруйте нову порцію, якщо перший вибір конфліктує з чимось локальним.

    Коли використовувати цей інструмент, а коли — код

    Використовуйте браузерний інструмент під час налаштування разового сервісу або написання прикладу. В автоматизації краще просити ОС призначити порт (зробити bind на порт 0 і зчитати обране значення) — це гарантує, що порт справді вільний, і усуває будь-які гонки між випадковим вибором і bind.