如何将临时端口映射到 pid?

如何将临时端口映射到 pid?

我有一台装有多个应用程序的 RHEL 服务器,我正在尝试找出其中哪一个应用程序正在调用外部 Web 服务。我有显示正在进行的调用的 TCP 转储,并且通过各种工具,我能够确定哪个临时端口正在进行这些调用。但是,我无法弄清楚如何将该临时端口映射到 pid。我知道我可以使用将lsof -i绑定端口映射到 pid,但这不是我的问题。

有没有办法将正在使用的临时端口映射到 pid 或其他指示符以指示哪个文件正在进行调用?

答案1

lsof -i $PROTOCOL:$PORT
fuser $PORT/$PROTOCOL
netstat -np | grep $PORT

任何一种都可以。以下是示例输出,显示我的邮件客户端使用临时端口 56375 与 IMAP 服务器通信以获得进一步解释:

$ sudo netstat -np | grep 56375
tcp        0      0 192.168.1.1:56375      217.70.184.11:993       ESTABLISHED 3256/thunderbird

$ fuser 56375/tcp
56375/tcp:            3256

$ lsof -i tcp:56375
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
thunderbi 3256   me     87u  IPv4 510573      0t0  TCP hostname:56375->example.com:imaps (ESTABLISHED)

答案2

netstat将列出所有各自的 pid 和端口。 netstat -nlp将为您提供端口到 pid 的映射。

相关内容