是否可以使用 Wireshark 嗅探特定进程的 TCP 流量,甚至通过插件根据进程 ID 过滤 TCP 流量?
我正在使用 Windows 7,但我也想了解 Linux 的解决方案。
是否可以使用 Wireshark 嗅探特定进程的 TCP 流量,甚至通过插件根据进程 ID 过滤 TCP 流量?
我正在使用 Windows 7,但我也想了解 Linux 的解决方案。
来自 DigitalOperatives 的网络流量中的进程归因 (PAINT)/Wireshark 可能是您正在寻找的。它基于 Wireshark 1.6.5,适用于 Windows Vista 及更高版本。它已于2012 年 12 月向公众发布用于研究目的,从那时起我一直在使用它。它不仅有效 - 您可以通过列过滤流量 - 而且速度非常快。
来自其开发人员的博客文章Process Attribution In Network Traffic对此进行了详细解释。
好吧,如果您不想使用 Wireshark,您可以使用Microsoft Network Monitor开箱即用。
更好的消息是,在 Windows 7(或 Win2008 R2)和更新版本上,您可以从命令行启动/停止捕获,而无需安装任何东西(您甚至可以远程执行)。
简短版本:
- 打开提升的命令提示符并运行:“netsh trace start persistent=yes capture=yes tracefile=c:\temp\nettrace-boot.etl”(确保您有一个 \temp 目录或选择其他位置)。
- 如果您正在跟踪启动缓慢的情况,请重现该问题或重新启动。
- 打开提升的命令提示符并运行:“netsh trace stop”您的跟踪将存储在 c:\temp\nettrace-boot.el 或您保存它的任何位置。您可以使用 netmon 在另一台机器上查看跟踪。
任意数据包通常与进程无关。对于已建立的 TCP 套接字,此信息可能会即时查找,但无法表达捕获过滤器以将过滤限制为单个进程。
其中一些选项是:
udp port 53
或host example.com
。对于后一种方法,我编写了一些脚本来自动化它,可以在https://github.com/Lekensteyn/netns找到它。它正是为此目的而设计的,从单个进程(及其子进程)创建网络捕获,而不会泄漏其他流量。
各种其他方法,例如使用 eBPF 和自定义解剖器添加进程信息,以及适用于 Windows 和 macOS 的潜在方法可以在 Wireshark 问题跟踪器的这些问题中找到:
到 2018 年为止,对 Wireshark 的替代建议,目前 Microsoft 开发的已取代Microsoft Network Monitor 的解决方案是Microsoft Message Analyzer。
2016 年 10 月 28 日发布了截至本文的最新版本 1.4 版本,并且消息分析器 TechNet 博客在此之前定期发布后,在 2016 年 9 月左右神秘地进入了无线电静默状态。
更新:消息分析器已于 2019 年底退役。