我有一个RHEL服务器上有几个应用程序,我试图找出哪一个正在调用外部Web服务。 我有TCP转储显示正在进行的调用,并通过各种工具,我可以确定什么短暂的端口正在进行这些调用。 但是,我无法弄清楚如何将这个临时端口映射到一个pid。 我知道我可以使用lsof -i将绑定的端口映射到pid,但这不是我的问题。
有没有什么办法将正在使用的临时端口映射到一个pid或其他指示器,以指明哪个文件正在进行呼叫?
lsof -i $PROTCOL:$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)
netstat会列出所有的pid和端口。 netstat -nlp将为您提供端口映射到pid。