115

私は、内部アプリケーションのそれぞれが個別の Tomcat インスタンスで実行され、特定の TCP ポートを使用する場所で働いています。サーバー上の他のプロセスとのポート番号の衝突を避けるために、これらのアプリに使用するのに最適な IANA ポート範囲はどれですか?

http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xmlに基づくと、現在表示されているオプションは次のとおりです。

  1. システム ポート (0-1023): サーバーがこの範囲の標準ポートでサービスを実行している可能性があるため、これらのポートを使用したくありません
  2. ユーザー ポート (1024-49151): アプリケーションが内部のものであることを考えると、IANA にアプリケーション用の番号を予約するよう要求するつもりはありません。ただし、1521 の Oracle Net Listener など、別のプロセスで同じポートが使用される可能性を減らしたいと考えています。
  3. 動的および/またはプライベート ポート (49152-65535): この範囲は、カスタム ポート番号に最適です。私の唯一の懸念は、これが起こった場合です。

    を。ポート X
    b を使用するようにアプリケーションの 1 つを構成します。アプリケーションが数分または数時間 (アプリの性質によって異なります) ダウンし、ポートがしばらく使用されないままになり
    ます。c. オペレーティング システムは、ポート番号 X を別のプロセスに割り当てます。たとえば、そのプロセスが別のサーバーへの TCP 接続を必要とするクライアントとして機能する場合です。これは、ダイナミック レンジ内にあり、オペレーティング システムに関する限り X が現在使用されていない場合に成功します
    。d. ポート X が既に使用されているため、アプリを起動できません

4

3 に答える 3

39

なぜあなたが気にするのかわかりません。「1024 未満のポートを使用しない」特権ルール以外に、クライアントは任意の IP アドレスとポートと通信するように構成できる必要があるため、任意のポートを使用できるはずです。

そうでない場合、それらはあまりうまく機能していません。戻って適切に実行してください:-)

つまり、IP アドレスXとポートでサーバーを実行しY、その情報を使用してクライアントを構成します。次に、と競合する別のサーバーを実行する必要がある場合は、新しいポートを使用するようにサーバーとクライアントを再構成します。これは、クライアントがコードであるか、ブラウザーに URL を入力する人であるかに関係なく当てはまります。XY

私は、あなたと同じように、IANA によって割り当てられた番号を取得しようとはしません。これは、非常に多くの環境で使用されるほど一般的なサービス用であると想定されているためです (SSH、FTP、または TELNET を考えてください)。

あなたのネットワークはあなたのネットワークであり、サーバーをポート 1234 (または TELNET や FTP ポートでさえも) にしたい場合、それはあなたの仕事です。適切な例として、私たちのメインフレーム開発エリアでは、telnet とは大きく異なる獣である 3270 ターミナル サーバーにポート 23 が使用されています。メインフレームの UNIX 側に telnet する場合は、ポート 1023 を使用します。ポート 1023 を指定せずに telnet クライアントを使用すると、telnet プロトコルについて何も知らないサーバーに接続してしまうため、面倒な場合があります。 telnet クライアントから出て、適切に実行します。

telnet big_honking_mainframe_box.com 1023

クライアント側を構成可能にすることが本当にできない場合は、48042 のような 2 番目の範囲の 1 つを選択し、それを使用して、それらのボックスの他のソフトウェア (将来追加されるものを含む) が邪魔にならないようにする必要があることを宣言します。 .

于 2012-05-07T05:30:06.330 に答える
9

簡単な答え: 割り当てられていないユーザー ポートを使用する

達成者の答え以上 - リソース発見ソリューションを選択して展開します。サーバーにプライベート ポートを動的に選択させます。クライアントにリソース検出を使用させます。

リッスンするポートが使用できないためにサーバーが失敗するリスクは現実にあります。少なくとも私には起こりました。別のサービスまたはクライアントが最初にそこに到達する場合があります。

クライアントに動的に割り当てられるプライベート ポートを回避することで、クライアントからのリスクをほぼ完全に減らすことができます。

ユーザーポートを使用すれば、別のサービスからのリスクは最小限に抑えられます。割り当てられていないポートのリスクは、別のサービスがたまたま構成されている (または動的に) そのポートを使用しているということだけです。しかし、少なくともそれはおそらくあなたの管理下にあります。

ユーザー ポートを含むすべてのポート割り当てを含む巨大なドキュメントは次のとおりです: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt .

于 2015-01-23T16:24:23.033 に答える