我正在寻找一种在 Windows 10 系统上检测 ICMP 请求(例如 ping)的方法。不幸的是,它不适用于 netstat,因为 ICMP 不依赖于端口,因此所有其他轻量级工具(如 TCPview)也不起作用。
是否有本机命令来监控 Windows 10 系统上的 ICMP?或者,如果没有其他解决方案,我会选择第三方工具,最好是比 Wireshark 更简单/更轻量级的工具。任何提示/解决方案都值得赞赏!
答案1
不幸的是它不适用于 netstat,因为 ICMP 不依赖于端口
不是;这是因为 ICMP 处理程序不使用常规插座,但内置于 IP 堆栈中。但是,如果您有一个使用“原始套接字”来生成 UDP 或 TCP 数据包(例如,我认为 nmap 符合条件)的程序,那么您也不会在 netstat 中看到它们。
此外,它无论如何都无法工作,因为 ICMP 是一种基于数据报的协议,其中单个“未连接”套接字可以从所有可能的来源接收数据包 - 即使它是 UDP(它做*:*
如果在 netstat 中显示该地址 (例如,如果该地址在 netstat 中显示),那么即使服务器响应 50 个不同的客户端,您通常也只会看到一个“外部地址: ”套接字。
在 Windows 10 系统上是否有本机命令来监控 ICMP?
Windows 10pktmon
自 2018 年发布以来。
pktmon filter add -p ICMP
pktmon start --etw -m real-time
pktmon filter add -p ICMP
pktmon start -c
...
pktmon stop
pktmon etl2txt .\PktMon.etl
跟踪是在不同的操作系统层上完成的,因此同一个数据包将显示为经过多个 Windows 组件(与 Npcap 不同,它仅在一个地方获取它们)。
Pktmon 的 ETL 捕获文件也可以转换为 .pcapng用于 Wireshark。
如果没有其他解决方案,我可以选择第三方工具,最好是比 Wireshark 更简单/更轻量级的工具
Wireshark 带有两个命令行工具:tshark
一个捕获数据包到终端(非常类似于 tcpdump,但具有 Wireshark 的解析功能),dumpcap
另一个输出原始 pcapng 文件(类似于带有-w
选项的 tcpdump)。
(其他工具也可以直接使用与 Wireshark 一起安装的相同 Npcap 驱动程序,例如很可能有一个 tcpdump 端口;但您需要注意 Npcap 的许可,它对 Wireshark 有一个特殊例外。其中一些工具可能还需要在“WinPcap 兼容”模式下安装 Npcap。)