我家里有一个小型本地网络,其中有两台计算机连接到调制解调器路由器。我想捕获从路由器到特定服务器的数据包(我知道该服务器的 IP 地址)。
该路由器的制造商是 D-Link。
答案1
首先,您必须介入所有这些流量。您可以通过多种方式做到这一点,其中最简单的方法可能是确定您是否真正需要来自两台计算机的流量或仅需要来自一台计算机的流量。
如果两者都需要,请将计算机连接到集线器,然后再连接到路由器。集线器会将所有网络流量发送到所有端口,而交换机只会将其发送到其预期目的地。
如果您只有一个交换机,我想您可以将一台计算机作为网关,并将第二台计算机指向它,但这很麻烦。
如果你需要全部流量,甚至是路由器,在路由器后放置一个集线器,并将计算机连接到它。这可能只有在您尝试捕获的流量没有源自您用来捕获数据包的机器,否则您将遇到一些更混乱的配置。
一旦所有的流量都流过你的电脑网卡,就可以抓取数据包嗅探器(我其实更喜欢Windows 网络监视器超过Wireshark) 并开始抓取数据包。您可能希望过滤流量以仅显示有问题的服务器。Microsoft 网络监视器中的过滤器非常用户友好:
答案2
如果您在家用路由器上运行 DD-WRT,则可以直接在路由器上运行 tcpdump,并将输出带回本地系统进行后续处理。
一个例子:
ssh [email protected] -c "tcpdump -v -w - -i eth2" > mypackets.pcap
完成后只需按 Ctrl-C,然后将捕获文件加载到您最喜欢的分析工具(如 Wireshark)中。
答案3
使用企业级路由器或交换机,您可以镜像端口并使用数据包捕获程序(如 wireshark 或 netmon)来执行此操作。使用 d-link 路由器,实际上没有办法做到这一点。
一种解决方案是获取网络集线器(不是交换机,而是集线器)并将其放置在内部网络上。然后将集线器的上行链路插入路由器上的端口。现在,由于您使用的是集线器,因此所有进出网络的流量都将到达您机器的所有 NIC。如果这样做,您将能够在混杂模式下运行 wireshark 或 netmon 并捕获所有这些流量。编写过滤器以隔离往返于特定 IP 的流量很简单。