再问一个tcpdump的问题: 为何抓不到局域网上其它机器之间通信的包?
比如:
我的机器的ip是192.168.1.1, 想抓192.168.1.2和192.168.1.3机器之间的通信包
打命令如下:
tcpdump host 192.168.1.2 and 192.168.1.3
但是抓不到, 不知道怎么回事??
进一步的问题是:
在什么情况下tcpdump抓不到其它机器之间通信的包呢?
有点奇怪, 我原来使用centos4, 在局域网交换机网络下也能抓到包,
现在用的是redhat as2.1, 在局域网交换机网络下抓不到包, 不知道
怎么回事?
楼主你要多学习一点网络知识……
基本上抓包必须在一个以太网“冲突域”里才能实现,一个hub和连在它上面的所有一以太网络设备是一个冲突域,而一个switch通常却是一个port一个冲突域,所以你没有办法“窃听”到其他机器的报文。
有些switch提供了一个“map”端口,这个端口将所有的其他端口报文复制一份并送出去,为的就是让工程人员可以监控到整个switch的报文。
至于广域网,就没什么希望了……
顺便问个问题, 一个Linux主机有多块网卡, 我想抓取没块网卡上的数据
由于我只要抓本机用户的信息, 不要其他用户的信息, 所以不管switch还是hub都可以
但是, Linux下网卡设置混杂模式的时候, 不像Windows要绑定网卡, 我该怎么读取某块网卡上的数据讷??
我的代码仿照的是
http://bbs.chinaunix.net/viewthread.php?tid=330081