在我家里,我使用无线路由器连接到互联网,因此每个设备都使用无线网卡来使用它。
通过这种方式,sudo tcpdump -i wlan0
从我的电脑上我应该能够看到在本地网络中传输的所有数据包(如果每个人都使用以太网连接,我就无法做到这一点)而且它看起来有效。
现在我尝试sudo tcpdump -i wlan0 host 192.168.1.3
只查看特定电脑的数据包(不是我的,而是另一台不同电脑的),但我什么也没得到:
****@****-pc ~ $ sudo tcpdump -i wlan0 host 192.168.1.3
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
所以我不明白,为什么使用sudo tcpdump -i wlan0
我可以看到一切,但我不能说只跟踪一个特定的流程?
答案1
许多无线卡将拒绝设置为混杂模式。 (也有例外,但相对罕见。)如果没有看到捕获的文本转储,则无法确定,但您看到的可能tcpdump
只是正常的广播流量。因此,当您要求查看特定主机的流量时,除了其广播流量之外,您将看不到任何内容,而广播流量应该很少。
答案2
因为网卡可能会过滤掉不是通过 MAC 地址发送到您的电脑的数据包,也可能会过滤掉该数据包所经过的任何路由器。 WiFi 路由器也是交换机和/或路由器(取决于配置)。
仅供参考,交换机工作在链路层(OSI 模式的第二层)。路由器工作在第 3 层。