在 Linux 机器上查找与特定进程相关的 IP 的最直接方法是什么?
如果进程使用的端口是专门为该进程保留的,那么任务就很简单了:我会通过过滤到该端口的数据包捕获来找到与该进程相关的数据包。
然而,当感兴趣的端口同时被多个进程使用时,这一点就变得不那么明显了。
在这种情况下,我如何区分某个特定选定进程发送或接收的数据包?
答案1
lsof -i :"port number"
这可以用来了解哪个端口正在监听哪个进程。
您还可以使用:
netstat -nutlp | grep "port number|process|IP Address"
答案2
最直接的方式是 Anirudh 的回复中的方式,以 root 身份:
netstat -aentpu | grep "IP:PORT"
不过,从你的问题来看,你认为可以有多个进程监听同一个 IP:PORT 组,你指的是 SO_REUSEPORT 吗?
在这种情况下,您也可以使用 netstat 来获取进程的 PID。
并且,sinffing 不一定会告诉您哪个进程正在监听,您只能看到流量。