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에 연결되어 있음을 의미합니다. 한 번에 하나의 연결만 처리할 수 있는 웹 서버는 그다지 좋은 서버가 아니죠?

또한 프로세스 25509는 github.com의 포트 443에 연결됩니다.

lsof명령은 설정된 네트워크 연결을 다음과 같이 표시합니다.

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

따라서 필드에 지정된 포트만 <local port>실제로 해당 줄에 나열된 프로세스에 속합니다. 이는 각각 35756, 49222 및 49648로 임의의 높은 번호가 매겨진 포트입니다. 이는 이것이 나가는 연결일 가능성이 가장 높다는 것을 나타냅니다.

화살표 오른쪽 부분은 연결의 "원격" 끝이 어디에 있는지 지정합니다. 즉, 다른 호스트의 서비스에 연결되거나 동일한 호스트의 포트에 연결될 수 있습니다.

화살표 방향은 연결 설정 방법과 아무 관련이 없습니다. 실제로 출력에는 멀티스레드를 나타내는 여러 PID가 있을 수 있는 lsofHTTPS 서버 프로세스(아마도 또는 다른 서버 소프트웨어)와 관련된 줄도 포함되어야 합니다 httpd. nginx/ 다중 프로세스 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이 세 가지와 유사한 줄이저것호스트로 변경합니다.

관련 정보