DevToys Web Pro iconDevToys Web Proブログ
評価:
ブラウザ拡張機能を試す:

ランダムポート生成

  • 範囲
    件数
    16168Registered (IANA-assigned)
    8264Registered (IANA-assigned)
    45347Registered (IANA-assigned)
    2975Registered (IANA-assigned)
    42506Registered (IANA-assigned)
    技術的な詳細

    ランダムポート生成器の仕組み

    このツールでできること

    ランダムポート生成器は、偏りのない棄却サンプリングを用いた crypto.getRandomValues() により、要求されたIANA範囲から1つ以上のTCP/UDPポート番号を選択します。デフォルトでは、ウェルノウンポートと、広く使われている開発用ポートの厳選リスト(3000、8080、5432、6379など)の両方を避けるため、生成された番号は新しいローカルサービスですぐに利用できます。

    開発者によくある利用シーン

    新しいマイクロサービス、docker-composeスタック、または一時的なテスト環境を立ち上げる開発者は、衝突しないポートを考えずに選ぶためにこのツールを使います。SREはIANAテーブルを手動で調べることなく、新しい社内サービス用のポートを割り当てられます。「エフェメラル」範囲は、本番のカーネル挙動に一致する短命ソケットを必要とするクライアント側TCPテストハーネスに最適です。

    データ形式、型、またはバリエーション

    利用可能な事前定義範囲は3つです:Well-known(1–1023)、Registered / Unprivileged(1024–49151)、Dynamic / Ephemeral(49152–65535)。生成された各番号には分類が注記されます。一般的なポートを避けるリストは、HTTP/HTTPS、SSH、一般的なデータベースポート、一般的な開発サーバー、メッセージキュー、標準的なキャッシュサービスをカバーします。

    よくある落とし穴とエッジケース

    ランダムなポート割り当ては、そのポートが実際にあなたのマシンで空いているかどうかを確認しません。これにはOSレベルでのbind試行が必要です。「一般的なポートを避ける」リストは厳選されたもので網羅的ではありません。業界特有のデフォルト(Cassandra 9042、Elasticsearch 9300など)はフラグされますが、カスタムの社内サービスは依然として衝突する可能性があります。最初の候補がローカルの何かと競合した場合は、新しいバッチを生成してください。

    コードではなくこのツールを使うべき場面

    単発のサービス設定やサンプル作成では、このブラウザツールを使用してください。自動化では、OSにポートを割り当てさせる(ポート0にbindして選ばれた値を読み戻す)方法を優先してください。これによりポートが実際に空いていることが保証され、ランダム選択とbindの間の競合も回避できます。