答案 0 :(得分:85)
如果您正在寻找替代方法并且您使用的环境是Windows,Microsoft的Network Monitor 3.3是一个不错的选择。它有进程名称列。您可以使用上下文菜单轻松将其添加到过滤器并应用过滤器。通常,GUI非常直观......
答案 1 :(得分:51)
我不知道怎么做。 PID不会使它成为线路(一般来说),而且Wireshark允许您查看线路上的内容 - 可能所有通过线路进行通信的机器。无论如何,进程ID在不同的机器上并不是唯一的。
答案 2 :(得分:13)
您可以将wireshark中的端口号与端口号匹配,例如netstat,它将告诉您侦听该端口的进程的PID。
答案 3 :(得分:11)
使用Microsoft Message Analyzer v1.4
从字段选择器导航到ProcessId。
Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId
右键单击添加为列
答案 4 :(得分:3)
在Windows上,有一个实验性版本可以执行此操作,如邮件列表 Filter by local process name
所述答案 5 :(得分:3)
能够监视某些进程尝试连接的位置是一件很重要的事情,而且似乎没有任何方便的方法可以在Linux上执行此操作。但是,有几种解决方法是可行的,所以我觉得值得一提。
有一个名为nonet的程序,它允许运行一个无法访问Internet的程序(我的系统上的大多数程序启动程序都设置了它)。它使用setguid在组nonet中运行进程,并设置iptables规则以拒绝来自该组的所有连接。
更新:到现在为止,我使用了一个更简单的系统,您可以轻松地使用ferm进行可读的iptables配置,只需使用程序sg
来运行具有特定组的程序。 Iptables还允许您重新路由流量,因此您甚至可以将其路由到单独的接口或端口上的本地代理,如果您不想在禁用所有互联网时,您可以直接从iptables过滤wireshark或LOG数据包正在检查交通。
使用它来运行组中的程序并使用iptables切断所有其他流量以执行生命周期并不是很复杂,然后您只能从此进程捕获流量。
如果我来写这篇文章,我会在这里发布一个链接。
另一方面,您可以随时在虚拟机中运行一个进程并嗅探正确的界面以隔离它所建立的连接,但这将是一个非常低劣的解决方案......
答案 6 :(得分:1)
如果您想关注仍然需要启动的应用程序,那么它当然是可能的:
docker run -t -i ubuntu /bin/bash
(将“ubuntu”更改为您喜爱的发行版,这不一定与您的真实系统相同)any
,wlan0
,eth0
,...而是选择新的虚拟界面docker0
。您可能对在容器中运行软件有疑问,因此以下是您可能想要问的问题的答案:
答案 7 :(得分:0)
在某些情况下,您无法按进程ID进行过滤。例如,在我的情况下,我需要从一个进程嗅探流量。但我发现在其配置目标机器的IP地址中添加了过滤器ip.dst==someip
和瞧。它在任何情况下都不会起作用,但对某些人来说它很有用。
答案 8 :(得分:0)
答案 9 :(得分:-1)
使用strace
更适合这种情况。
strace -f -e trace=network -s 10000 -p <PID>;
选项-f
还可跟踪所有分叉的进程,-e trace=netwrok
仅可过滤网络系统调用,而-s
可显示最多10000个字符的字符串。
您还只能跟踪某些调用,例如send,recv,read操作。
strace -f -e trace=send,recv,read -s 10000 -p <PID>;
答案 10 :(得分:-13)
您可以在wireshark上使用以下命令示例检查端口号: -
tcp.port == 80
tcp.port == 14220