一部のLinuxサービスを非標準ポートに設定したい-有効な最大のポート番号はいくつですか?
(2 ^ 16)-1、または0-65,535(-1はポート0が予約されていて使用できないためです)。 (o_O Tyncがポート0を使用できないことを通知し、Steve Follyがポート数ではなく最高のポートを要求したことを通知したため、編集されました)
しかし、あなたはおそらくこれを間違った方法で行っているでしょう。非標準のポートについて賛成と反対を主張する人々がいます。私はそれらが最もカジュアルなスキャナーを除いて無関係であると言います、そして最もカジュアルなスキャナーは強力なパスワードと共に最新のソフトウェアと適切なファイアウォール技術を使用することによって寄せ付けないでおくことができます。つまり、セキュリティのベストプラクティスです。
1〜65535が使用可能で、1〜1023のポートは特権のポートです。これらのポートをリッスンするには、アプリケーションをrootとして実行する必要があります。
1-65535は合法ですが、TCPポートであり、1-1023はよく知られたポートサービス用です。エフェメラルポートの後に開始すると、独自のサービスでランダムな問題が発生する可能性がありますは知らないかもしれませんが、エフェメラルポートは、リモートエンドポイント(またはその効果のために何か)にローカルに接続されているポートです。したがって、TCPサービスをポートでリッスンする場合、 20001。今日は明日、明日は良いかもしれません。しかし、ある日、サービスが起動して20001にバインドしようとする可能性があります。一時的なポートとして取得されたため、サービスは失敗します。解決策があります。管理者がいる必要があります。またはご自身で、サーバーのシステムのエフェメラルポート範囲ポリシーを変更します。Linuxシステムでは、次の2つの手順で行います。
両方の手順を実行する必要があります。再起動する予定がない場合は、動的手順は必要ありません。 40000から65535までの範囲を設定するには、次のようにします。
動的
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
または
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
永続的
以下を/etc/sysctl.confに追加します。
net.ipv4.ip_local_port_range = 40000 65535
現在の設定を読み取るか、変更を確認するには:
/sbin/sysctl net.ipv4.ip_local_port_range
出力は次のようになります。
net.ipv4.ip_local_port_range = 9000 65500
サーバーの目的を必ず理解してください。範囲を減らしすぎると、他の問題が発生する可能性があります。
Happy Coding!(またはあなたが何をしても)