この投稿では、CentOS/RHEL システムで特定のポート範囲を予約する方法について、これらのポートがサード パーティ アプリケーションに必要な場合にガイダンスを提供します。たとえば、アプリケーション A で使用するには「10000 ~ 15000」のポート範囲が必要であり、アプリケーション B で使用するには「20000 ~ 25000」のポート範囲が必要です。 20000 ~ 25000 インチは、アプリケーション A と B 用に独占的に予約されます。
CentOS/RHEL オペレーティング システム側では、サードパーティ製アプリケーションが必要とするポート範囲を予約する必要があります。ポート範囲が特定のアプリケーション用にポートを厳密に予約するのではなく、アプリケーション側で予約することに注意することが重要です。その特定のアプリケーションで使用されるポートを設定する必要がある場所です。
ポート範囲を変更するには、ファイル proc/sys/net/ipv4/ip_local_port_range を変更するだけです それぞれの望ましい値を変更してください。
1.現在のポート範囲を確認してください:
# cat /proc/sys/net/ipv4/ip_local_port_range
例:
# cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000
または
# sysctl net.ipv4.ip_local_port_range
例:
# sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 61000
2.ポート範囲を目的の値に変更します:
# echo 10000 25000 > /proc/sys/net/ipv4/ip_local_port_range
または
# sudo sysctl -w net.ipv4.ip_local_port_range="10000 25000"
3. /etc/sysctl.conf ファイルを変更
構成ファイル /etc/sysctl.conf を編集します ファイルを変更して永続的に変更し、次の行を追加します:
# vi /etc/sysctl.conf net.ipv4.ip_local_port_range = 10000 25000
「ip_local_port_range」で予約されているポート範囲から 1 つ以上の特定のポートを予約するには 」 特定の目的のために、次のファイルにポートを追加します:
/proc/sys/net/ipv4/ip_local_reserved_ports
メモ
ip_local_port_range – 2 INTEGERS
TCP および UDP がローカル ポートを選択するために使用するローカル ポート範囲を定義します。最初の番号は最初の番号で、2 番目は最後のローカル ポート番号です。可能であれば、これらの数値が異なるパリティ (1 つの偶数と 1 つの奇数の値) を持つ方がよいでしょう。デフォルト値はそれぞれ 32768 と 60999 です。
ip_local_reserved_ports – コンマ区切りの範囲のリスト。
既知のサードパーティ アプリケーション用に予約されているポートを指定します。これらのポートは、自動ポート割り当てでは使用されません (たとえば、ポート番号 0 で connect() または bind() を呼び出す場合)。明示的なポート割り当ての動作は変更されていません。
入力と出力の両方に使用される形式は、カンマで区切られた範囲のリストです (例:ポート 1、2、3、4、および 10 の場合は「1,2-4,10-10」)。ファイルに書き込むと、以前に予約されたすべてのポートがクリアされ、入力で指定されたポートで現在のリストが更新されます。
注意 :ip_local_port_range と ip_local_reserved_ports の設定は独立しており、どちらのポートも自動ポート割り当てに使用できるかどうかを判断する際にカーネルによって考慮されます。現在の ip_local_port_range にないポートを予約できます。例:
$ cat /proc/sys/net/ipv4/ip_local_port_range 32000 60999 $ cat /proc/sys/net/ipv4/ip_local_reserved_ports 8080,9148
これは冗長ですが。ただし、後でポート範囲が予約済みポートを含む値に変更された場合、このような設定は便利です。