我在本地机器上运行两个应用程序(一个客户端和一个服务器),我想通过 NetMon 监控它们的网络流量。
一种解决方案是通过默认网关路由本地流量。但是,我从来没有成功过。添加以下路由应该很简单:
net add <localip> MASK <mask> <defaultgatway> METRIC 1 IF 1
结果:
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
87.198.54.0 255.255.255.0 87.198.54.9 87.198.54.9 25
---> 87.198.54.0 255.255.255.0 87.198.54.1 87.198.54.9 1
87.198.54.9 255.255.255.255 127.0.0.1 127.0.0.1 25
87.255.255.255 255.255.255.255 87.198.54.9 87.198.54.9 25
Default Gateway: 87.198.54.1
===========================================================================
---> 87.198.54.0 255.255.255.0 87.198.54.1 87.198.54.9 1
因此,我期望该路由将所有到 87.198.54.9 的数据包路由到网关。但事实并非如此。
该方法在以下 Technet 幻灯片中进行了描述。所以我非常确定一定有办法实现这一点……
知道为什么该路线不起作用吗?
问题更加具体:
我在本地机器上运行 ping 命令到我的本地机器。
如何在 MS NetMon 中查看 ICMP 数据包?
谢谢,亚历克斯
答案1
在 Windows 上监控本地流量充其量,是不可靠的。您描述的方法不适用于发往 127.0.0.1 的流量。据我所知,没有简单的方法可以将该流量放入任何嗅探器中。
假设你要捕获基于 TCP 的协议,我会安装一个版本rinetd(Windows 二进制文件可从该链接获取)在远程计算机上配置监听相应端口,并将流量发送回您机器上的监听程序。然后流量将通过网络发送,您可以使用 NetMon 捕获它。
我曾多次使用这种“远程代理回到本地机器”技术,并取得巨大的成功。
答案2
问题出在路线上:
代替:
87.198.54.0 255.255.255.0 87.198.54.1 87.198.54.9 1
该路线应该是:
87.198.54.9 255.255.255.255 87.198.54.1 87.198.54.9 1
我仍然无法在网络监视器中看到 ping,但是可以看见 telnet 连接。
因此,当您不使用 127.0.0.1 时,此方法适用于 HTTP 流量