网卡正常情况下,即非混杂混杂模式下,只接收目的地址是本机的数据包。在以太网上,有大量的数据包,但真正发送给自己的非常少,所以非混杂模式下可以极大的减轻网卡的处理负担。混杂模式(Promiscuous Mode)则是相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它他。
有时候为嗅探到网络上的数据,需要将网卡设置到混杂模式。进入该模式将网络上的数据一并抓获,为此在设置nic的混杂模式的时候有诸多方法?
在Linux系统中,可以通过shell命令来实现:
ifconfig eth1 promisc 设置混杂模式
ifconfig eth1 -promisc 取消混杂模式
是不是看起来很简单,看看执行后的效果:
[root@localhost splaybow]# ifconfig
eth6 Link encap:Ethernet HWaddr 08:00:27:70:1D:79
inet6 addr: fe80::a00:27ff:fe70:1d79/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:100124 errors:0 dropped:0 overruns:0 frame:0
TX packets:8795 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12986638 (12.3 MiB) TX bytes:6452270 (6.1 MiB)
[root@localhost splaybow]# ifconfig eth6 promisc
[root@localhost splaybow]# ifconfig
eth6 Link encap:Ethernet HWaddr 08:00:27:70:1D:79
inet6 addr: fe80::a00:27ff:fe70:1d79/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:100154 errors:0 dropped:0 overruns:0 frame:0
TX packets:8795 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13007885 (12.4 MiB) TX bytes:6452270 (6.1 MiB)
[root@localhost splaybow]#
后面的网卡信息中,多了一个关键词,那就是:PROMISC!这就表示当前网卡已经工作在混杂模式下了。如果一个主机上有多块网卡,可以分别设置它们工作在混杂模式还是非混杂模式。
关于Linux中如何将网卡设置为混杂模式,本文就介绍这么多,希望对您有所帮助,谢谢!