Windows サービスによってホストされる WCF サービスを作成しましたが、既知の TCP/IP ポートでリッスンする必要があります。組織内で使用するポートを安全に割り当てることができる範囲は? そのポートは、サービスとサービスを使用しているクライアントの構成ファイルに埋め込まれます。
6 に答える
ポート 0 ~ 1023 は Well Known ポートで、IANA によって割り当てられます。これらは、パブリック ネットワーク上の割り当てられたプロトコルにのみ使用する必要があります。
ポート 1024 ~ 65535 は以前は登録済みポート番号 ( rfc1700を参照) と呼ばれていましたが、現在は 2 つの領域に分割されています ( rfc6335を参照)。
ポート 1024 ~ 49151 はユーザー ポートであり、独自のプロトコルに使用するポートです。
ポート 49152 ~ 65535 は動的ポートであり、プロトコルに規定する必要はありません。
ユーザー ポートは任意のプロトコルに使用できますが、数に限りがあるため、どこかのネットワークで他のユーザーが使用するものと競合します。IANA は、登録されたポート番号 (0-49151) の記録を保持します。プロトコルがパブリック ネットワークで使用される場合は、IANA への登録を検討する必要があります。独自のネットワーク内でのみ使用している場合は、この領域 (1024-49151) 内のポートを選択し、IANA レジスタに対してそのポートをチェックして、ネットワークで使用できるプロトコルによって使用されていないことを確認してください。私的使用の場合は、割り当てられていないために将来割り当てられる可能性があるプロトコルを選択するよりも、使用されないことがわかっているプロトコルに割り当てられている番号を選択する方がおそらく良いでしょう。
動的範囲内のポート番号を使用しないでください。これらのポートは、オペレーティング システムによって動的に、ある程度ランダムに割り当てられます。(port=0 で bind() を使用して) クライアント接続を開くと、動的範囲から未使用のポートが割り当てられます。この範囲のポートが常にプロトコルに使用できることを保証する方法はありません。
49152 から 65535 までのポート番号を選択します。
IANA は、現在割り当てられているポートのリストを公開しています。
http://www.iana.org/assignments/port-numbers
動的および/またはプライベート ポートは、49152 から 65535 までのポートです。これは、社内アプリケーション用のポートを選択する必要がある範囲です。もちろん、公開されたリストの未割り当ての範囲の 1 つに属している任意のポートを使用できます。ただし、これらの未割り当ての範囲からポート番号を選択しても、選択したポートが将来予約済みポートにならないという保証はないことに注意してください。
割り当てられていないポート番号は使用しないでください。アプリケーションが承認された後、IANA はポートの番号を割り当てます。
そして、選択したポート番号が、あなたが述べたように構成可能であることを確認してください:
そのポートは、サービスとサービスを使用しているクライアントの構成ファイルに埋め込まれます。
これにより、触れることができない他のサードパーティのソフトウェアがポート番号を使用している場合の頭痛を回避できます。その場合は、先に進んで構成ファイルで変更するだけで機能します。
簡単な回答: 1023 まで、または 49152 を超えるものは避け、選択したポートをネットワーク上のサービスに対してテストします。
適切な予防措置 (ポート番号を構成ファイルに入れる) を行っていれば、後で競合が見つかったとしても大きな混乱にはなりません。
ただし (入力中にポップアップ表示された他の提案に何かを追加できるように)、簡単に変更できるようにしてください。構成ファイルにある場合は、明確にしてください。それを文書化し、トラブルシューティングで指摘してください。これはうまくいかない可能性があるため、変更が必要な場合は簡単にデバッグできるようにしてください。
一般的なアプリケーション ポートの選択に関する他の提案に加えて、アプリケーション内でポートを構成可能にすることをお勧めします。ハードコーディングされたポート番号は、特に後で別のアプリケーションとのポートの競合を発見し、自分のものを変更する必要がある場合は、悪い考えです。
注意として、netstat / a / nでこれらのポートをチェックして、他のアプリケーションで使用されているかどうかを確認することを忘れないでください。ビスタが49152を使用していることがわかりました....アプリケーションレベルの理由で。基本的に、システムレベルのリスナーのほとんどはポート共有を実装していないため、まったく使用されていないポートを使用しても安全です。
一般的なアプリケーション ポートの一覧を次に示します。空いているスロットで自分で選択してください。社内の特別なアプリケーションがないかネットワークをスキャンする必要があるかもしれません。
通常、多数のポートが利用可能であり、それらをお勧めしますが、ファイアウォールによってブロックされる可能性があります.