CentOS 7.9で複数のプロセスが同じポートを占めるのはなぜですか?

CentOS 7.9で複数のプロセスが同じポートを占めるのはなぜですか?

このコマンドを使用して、ポートがどのプロセスで使用されているかを確認します。

lsof -i:443

しかし、出力結果は私を混乱させます。

[root@k8smasterone ~]# lsof -i:443
lsof: no pwd entry for UID 65532
lsof: no pwd entry for UID 1001
COMMAND     PID     USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
lsof: no pwd entry for UID 65532
traefik   13731    65532   10u  IPv4 10157368      0t0  TCP k8smasterone:35756->k8smasterone:https (ESTABLISHED)
lsof: no pwd entry for UID 1001
operator  24351     1001    6u  IPv4   515576      0t0  TCP k8smasterone:49222->k8smasterone:https (ESTABLISHED)
calico-ty 25072  polkitd    7u  IPv4   523993      0t0  TCP k8smasterone:49648->k8smasterone:https (ESTABLISHED)
wget      25509     root    4u  IPv4  9941865      0t0  TCP iZuf62lgwih3vksz3640gnZ:46538->cdn-185-199-110-154.github.com:https (ESTABLISHED)

ポート443が複数のプロセスで使用されることを意味しますか?これは正しいですか?なぜこれが起こるのですか?

ベストアンサー1

いいえ、これはプロセス13731、24351、および25072がすべてこのホストのポート443に接続されていることを意味します。一度に1つの接続しか処理できないWebサーバーはそれほど良いサーバーではありませんか?

さらに、プロセス25509はgithub.comのポート443に接続されます。

このlsofコマンドは、設定されたネットワーク接続を次のように表示します。

<local hostname/IP>:<local port> -> <remote hostname/IP>:<remote port>

したがって、フィールドで指定されたポートだけが<local port>実際にその行にリストされているプロセスに属します。これは、それぞれ35756、49222、および49648でランダムな高番号のポートです。これは、これが発信接続である可能性が最も高いことを示します。

矢印の右側の部分は、接続の「リモート」端がどこにあるかを示します。つまり、別のホストのサービスに接続することも、同じホストのポートに接続することもできます。

矢印の方向は、接続の設定方法とは何の関係もありません。実際には、出力にはマルチスレッドを表す複数のPIDがある可能性があるlsofHTTPSサーバープロセス(おそらくまたは他のサーバーソフトウェア)に関連する行も含める必要がありますhttpdnginx/マルチプロセスHTTPSサーバーと次の領域NAME

  • *:https (LISTEN)*さまざまな場合があります) - プロセスが着信接続を受信して​​いることを示します。
  • k8smasterone:https->k8smasterone:35756 (ESTABLISHED)- プロセス13731接続のサーバー側
  • k8smasterone:https->k8smasterone:49222 (ESTABLISHED)- プロセス24351接続のサーバー側
  • k8smasterone:https->k8smasterone:49648 (ESTABLISHED)- プロセス25072接続のサーバー側

ただし、構成に一部のDNAT、ロードバランシング、またはクラウドネットワーキングトリックが含まれている場合、実際のHTTPSサーバーは他のホストにある可能性が高いため、lsofこれら3つのような行それホストに変更します。

おすすめ記事