首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 7.9中多进程为何采用同一端口

CentOS 7.9中多进程为何采用同一端口
EN

Unix & Linux用户
提问于 2021-08-04 07:46:01
回答 1查看 74关注 0票数 0

我现在使用这个命令来查看端口所使用的进程:

代码语言:javascript
复制
lsof -i:443

但是输出让我感到困惑:

代码语言:javascript
复制
[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端口是由多进程使用的?是对的吗?为什么会发生这种事?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-08-04 08:35:44

不,这只是意味着您的进程13731、24351和25072都已连接到该主机的端口443。一次只能提供一个连接的web服务器并不是一个很好的服务器,对吗?

此外,流程25509已经连接到github.com的端口443。

lsof命令显示的网络连接如下所示:

代码语言:javascript
复制
<local hostname/IP>:<local port> -> <remote hostname/IP>:<remote port>

因此,只有<local port>字段中指定的端口实际上属于行中列出的进程。这些都是随机的高编号端口:分别为35756、49222和49648 .这表明这些很可能是传出连接。

箭头右侧的部分只指定连接的“远端”位置:它可以连接到其他主机上的服务,也可以连接到同一主机上的端口。

请注意,箭头的方向与如何建立连接无关:实际上,您的lsof输出还应该包括与HTTPS服务器进程相关联的行(可以是httpdnginx或其他服务器软件),其中可能有多个PID指示多线程/多进程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行将出现在该主机上。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/663223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档