我现在使用这个命令来查看端口所使用的进程:
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端口是由多进程使用的?是对的吗?为什么会发生这种事?
发布于 2021-08-04 08:35:44
不,这只是意味着您的进程13731、24351和25072都已连接到该主机的端口443。一次只能提供一个连接的web服务器并不是一个很好的服务器,对吗?
此外,流程25509已经连接到github.com的端口443。
lsof命令显示的网络连接如下所示:
<local hostname/IP>:<local port> -> <remote hostname/IP>:<remote port>因此,只有<local port>字段中指定的端口实际上属于行中列出的进程。这些都是随机的高编号端口:分别为35756、49222和49648 .这表明这些很可能是传出连接。
箭头右侧的部分只指定连接的“远端”位置:它可以连接到其他主机上的服务,也可以连接到同一主机上的端口。
请注意,箭头的方向与如何建立连接无关:实际上,您的lsof输出还应该包括与HTTPS服务器进程相关联的行(可以是httpd、nginx或其他服务器软件),其中可能有多个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行将出现在该主机上。
https://unix.stackexchange.com/questions/663223
复制相似问题