Answers:
我不知道如何。PID不会将其传递到电线上(通常来说),加上Wireshark允许您查看电线上的内容-可能是所有通过电线进行通信的机器。无论如何,进程ID在不同的机器上并不是唯一的。
万一您正在寻找一种替代方法,并且所使用的环境是Windows,Microsoft的Network Monitor 3.3是一个不错的选择。它具有进程名称列。您可以使用上下文菜单轻松地将其添加到过滤器中并应用该过滤器。通常,GUI非常直观...
您可以将Wireshark的端口号与netstat的端口号进行匹配,这将告诉您侦听该端口的进程的PID。
监视某些进程尝试连接到的位置是一件很重要的事情,在Linux上似乎没有任何方便的方法可以做到这一点。但是,有几种解决方法是可行的,因此我觉得值得一提。
有一个名为nonet的程序,它允许运行无法访问Internet的程序(我的系统上安装了大多数程序启动器)。它使用setguid在nonet组中运行进程,并设置iptables规则拒绝该组的所有连接。
更新:到目前为止,我使用了一个更简单的系统,您可以轻松地使用ferm进行具有可读性的iptables配置,并且只需使用该程序sg
即可运行具有特定组的程序。iptables还允许您重新路由流量,因此,即使您不想禁用所有Internet,甚至可以将其路由到端口上的单独接口或本地代理,也可以过滤wireshark或直接记录来自iptables的数据包正在检查流量。
使它适应于在一个组中运行程序并在执行生命周期内使用iptables削减所有其他流量并不是很复杂,然后您只能从该过程中捕获流量。
如果我愿意写它,请在此处发布链接。
另外,您始终可以在虚拟机中运行进程并嗅探正确的接口以隔离其建立的连接,但这将是一个次等的解决方案...
如果您想遵循仍必须启动的应用程序,那么当然可以:
docker run -t -i ubuntu /bin/bash
将“ ubuntu”更改为您喜欢的发行版,这不必与您的实际系统中的相同)any
,wlan0
,eth0
,...选择新的虚拟接口docker0
来代替。您可能对在容器中运行软件有一些疑问,因此,这是您可能要问的问题的答案:
在某些情况下,您无法按进程ID进行过滤。例如,就我而言,我需要从一个进程中嗅探流量。但是我在其配置目标机器的IP地址中找到了添加的过滤器ip.dst==someip
和voila。它在任何情况下都不会起作用,但是对于某些情况来说很有用。
您可以使用wireshark上的以下命令示例检查端口号:-
tcp.port == 80
tcp.port == 14220