网卡正常情况下,即非混杂混杂模式下,只接收目的地址是本机的数据包。在以太网上,有大量的数据包,但真正发送给自己的非常少,所以非混杂模式下可以极大的减轻网卡的处理负担。混杂模式(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中如何将网卡设置为混杂模式,本文就介绍这么多,希望对您有所帮助,谢谢!

03-14 13:22