新しいサービスのデフォルトのTCP / IPポートを選択するにはどうすればよいですか?


110

TCP / IPポートでリッスンするアプリを開発する場合、デフォルトポートを選択するにはどうすればよいですか?このアプリは多くのコンピューターにインストールされ、ポートの競合を回避することが望ましいと仮定します。


1
これは、より良い、ここで回答されていますstackoverflow.com/questions/10476987/...
matt2000

回答:


49

ここに行き、説明のあるポートを選択してくださいUnassigned


11
彼は100未満のポートを選択することを提案していますか?
mpen

3
どれを選ぶべきですか?
オーウェン

1
すべての開発者がそのロジックに従っている場合、すべての新しいサービスがいくつかの未割り当てポートを中心に集まることを意味します。サービスが割り当てられたポートと割り当てられていないポートで実行されている確率はどのくらいでしょうか。(私がいくつかの企業秘密を公開していない場合は申し訳ありません:)
hultqvist 2017

1
:あなたは、内部ネットワーク上で使用するポートを探しているなら、同様の質問にこの答えを考えてみてくださいstackoverflow.com/questions/218839/...
adrianwadey

32

最初のステップ:IANAリストを確認します。

リストの最後に表示されます

「動的ポートおよび/またはプライベートポートは49152から65535までのものです」

ですから、それらはあなたのより良い賭けになりますが、1つを選んだら、いつでもグーグルして、すでにそれを「要求」している人気の十分なアプリがあるかどうかを確認できます


8
しかし、動的ポートを使用すると、断続的な(まれではありますが)ポートの競合が発生する可能性がありますか?おそらく、割り当てられていないか、あいまいなアプリに割り当てられている登録済み範囲のポートを使用する方が安全です。
ケビン・ウォン

4
ポートの選択をIANAに明示的に登録しない限り、私は "UNASSIGNED"を使用して同じ競合オッズを実行すると思います。実際、ローエンドには多くの割り当てられていないものが存在するため、それらはおそらく
IMHOである

2
可能性のある競合に対処するためにユーザー/管理者が構成可能なポートのオプションを使用して、常に割り当てられていない範囲から始めます。アプリケーションが広く使用されるようになった場合のみ(BitTorrentやその他の大規模な使用法を検討してください)、割り当てられたポートの申請を検討する必要があります。それ以外の場合は、割り当てられた範囲から外れます。これが厳密に内部/個人的なものである場合は、さまざまなサービスで使用されているポートを文書化するだけでよく、人々がオンラインでどこかでポートを検索できる限り問題ありません。ルーティング不可能なIPと同様のプライベート/ダイナミックレンジについて考えてみましょう。これらは小規模/プライベートでの使用に最適です。
jefflunt 2013

3
アプリが実際に使用される前に使用が急増すると思うので、アプリにIANA割り当てポートが必要であると想定することを間違えないでください。:)
jefflunt 2013

7
ダイナミックレンジに関しては、OSがエフェメラルポートにその範囲を使用している場合(必要に応じて)、OSがランダムに決定した場合に選択したポートと競合するかどうかについて、「競合」の質問が尋ねていたと思いますたとえば、いくつかの送信接続にそのポートを使用する。(私が理解しているように、この範囲をランダムに使用することが一時ポートの目的です。)懸念をより詳細に説明している他の質問を参照してください。
Garret Wilson

7

で広く使用されている場合は、あなたが将来的にそれを使用して他の人に対して保護する意味で、あなたはIANAによってあなたのアプリケーションのために予約としてそれをマークしているように適用することができ、ここで



2

このリスト(Wikipedia)からのポートの使用は避けたいでしょう。

私は1つを選ぶだけで、アプリが大衆によって使用されると、ポート番号が認識され、そのようなリストに含まれるようになります。


2

他の人が言うように、IANAを確認してください。

次に、ローカルシステムの/ etc / servicesをチェックして、すでに使用されているカスタムポートがあるかどうかを確認します。

そして、ハードコードしないでください。他の理由で、複数の開発者が独自のローカライズされたビルドを同時に使用できるようにしたい場合は、何らかの方法で構成可能であることを確認してください。


1

IANAリストから割り当てられていないものを選択するだけで通常は十分ですが、市販の製品について話している場合は、実際にIANAに申請して割り当てられているものを取得する必要があります。これを行うプロセスは単純ですが遅いことに注意してください。前回申請した時、1年かかりました。


1

広く利用されることが予想されるアプリケーションの場合は、こちらから登録して ください他の誰も使用しないようにします。

それ以外の場合は、未使用のものをランダムに選択します。

動的範囲で使用することの問題は、動的ポート番号に使用されている可能性があるため、使用できない可能性があることです。


0

ianaリストを使用します。以下からcsvファイルをダウンロードします。

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv

そして、このシェルスクリプトを使用して、登録されていないポートを検索します。

for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;

NとMの代わりに2つの数値を入力します。


-1

ここで、よく使用されるいくつかのポート番号をここで参照し、他の人のポート番号を使用しないようにすることができます。

「一般に公開する」ということは、自分のシステムのポートを開くことを意味している場合、システム管理者とチャットして、どのポートを使用するのが適切かについて話し合います。



-1

最も一般的なデーモンとサーバーに干渉しないデフォルトのポートを選択します。また、ポート番号が一部のウイルスに対する攻撃ベクトルとしてリストされていないことを確認してください。企業によっては、そのようなポートをブロックするという厳格なポリシーを採用しています。最後に重要なことですが、ポート番号が構成可能であることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.