网卡混杂模式Promiscuous与linux上混杂模式的设置混杂模式
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
以太网是一种总线型的网络,从逻辑上来看是由一条总线和多个连接在总线上的站点所组成各个站点采用上面提到的 CSMA/CD 协议进行信道的争用和共享。每个站点(这里特指计算机通过的接口卡)网卡来实现这种功能。网卡主要的工作是完成对于总线当前状态的探测,确定是否进行数据的传送,判断每个物理数据帧目的地是否为本站地址,如果不匹配,则说明不是发送到本站的而将它丢弃。如果是的话,接收该数据帧,进行物理数据帧的 CRC 校验,然后将数据帧提交给LLC 子层。
网卡具有如下的几种工作模式:
1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。
2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。
3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。
4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。
网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接受同一网络内所有站点所发送的数据包这样就可以到达对于网络信息监视捕获的目的。
集线器与交换机环境下混杂模式
在集线器模式下,源主机“主机2”要向目标主机“主机3”发送数据,当数据到达集线器后,集线器会向除了源主机“主机2”本身之外的所有主机发送数据,即除了源主机“主机2”之外的所有主机都可以收到“主机2”所发的数据。目标主机“主机3”判断到该数据是给自己的,就进行处理;其余主机判断到所发的数据是给“主机3”的,而不是给自己的,就不进行处理。该模式下,硬件设计简单、速度快,并且对主机的开机(新主机加入)和关机(当前在线主机的离开)都具有很好的适应性,只要发送的时候,目标主机在线,就可以马上进入工作状态。但缺点是该模式对冲突的解决是非常麻烦的,例如,当“主机2”向某一台主机发送数据的期间,“主机4”也再向另一台主机发送数据,则二者的数据会出现冲突,这种冲突会导致二主机所发的数据全部出错。解决办法就是二者各“等”一会儿再重发,但再重发并不能避免产生新的冲突。这种现象在频繁数据交换的时候,冲突的现象非常明显,会大大减低网络带宽,现在这种模式已被交换机模式所代替。
在交换机模式下,源主机“主机2”要向目标主机“主机3”发送数据,当数据到达交换机后,交换机会分析目标主机“主机3”所在的端口,然后只向该端口发送数据,这样,其余主机就接不到由源主机“主机2”所发出来的。这样,使得别的主机就不需要处理不属于自己的数据,从而减少了负荷,而且如果此前“主机5”要向“主机1”发送数据时,就不会出现冲突。在该模式下,由于有效地减少了“冲突”的可能,所以整个带宽的利用率大大提高,并且各个主机也减少了处理不属于自己数据包的工作。但这样做也有一些缺点,比如新主机的加入和当前在线主机的离开,通常都需要交换机花费一定时间来判断新的变化。当前绝大多数以太网所使用的都是交换机模式。
通过上面的分析,不难看出,当前以交换机作为交换设备的网络中,即使是将某一个网卡设置成“混杂模式”,除非使用一些特殊技术,网卡本身一般是接不到不是发送给自身的数据,所接到的只是给本身IP的数据和广播数据,但这时RAW Socket可以监听所有的数据了。这点与“常规模式”不同.
linux下混杂模式设置
命令方式设置
一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。
网卡打开混杂模式命令如下:
通过shell命令来实现:
ifconfig wlan0 promisc 设置混杂模式
ifconfig wlan0 -promisc 取消混杂模式
监听模式(monitor)
iwconfig wlan0 mode monitor
/home # iwconfig lo no wireless extensions. wlan0 IEEE 802.11b ESSID:"" Nickname:"<WIFI@REALTEK>" Mode:Monitor Frequency:2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 eth0 no wireless extensions.
如果没有生效,可以尝试先
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
无线网卡监听模式和混杂模式有什么不同:
- 监听模式允许网卡不用连接wifi就可以抓取特性频道的数据,就是在空气中抓取某个波段的数据。可以用在破解wifi密码上
- 混杂模式(连接wifi)就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址
- 普通模式下网卡只接收发给本机的包