混杂模式介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/89603272

一 混杂模式基本概念

一般情况下,网卡往往只会接收目的地址是它的数据包而不会接收目的地址不是它的数据包。

混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。默认情况下,网卡只把发给本机的包(包括广播包)传递给上层程序,其他的包一律丢弃。

混杂模式就是指网卡能接受所有通过它的数据流,无论是什么模式、什么地址的。当网卡处于这种“混杂”模式时,它对所有遇到的每一个数据帧都产生一个硬件中断,以提醒操作系统处理流经该物理媒体上的每一个报文包。

二 网卡工作模式

  • 广播模式:物理地址(MAC)是0Xffffff的帧为广播帧,工作在广播模式的网卡接收广播帧。
  • 多播模式:如果将网卡设置为多播模式,它可以接收所有的多播传送帧,而不论他是不是组内成员。
  • 直接模式:只接收目的地址是自己MAC地址的帧。
  • 混杂模式:工作在混杂模式下的网卡接收所有流经网卡的帧。

网卡默认工作模式包括广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,一个站点的网卡将接收同一网络内所有站点所发送的数据包,这样就可以达到对网络信息监视捕获的目的。

三 命令行查看、设置、取消混杂模式

1 查看网卡是否为混杂模式

[root@localhost test]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.110  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::df33:8333:2d63:e4b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:60:7b:7f  txqueuelen 1000  (Ethernet)
        RX packets 5415  bytes 468898 (457.9 KiB)
        RX errors 0  dropped 3  overruns 0  frame 0
        TX packets 1035  bytes 95233 (93.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

flags=4163<UP,BROADCAST,RUNNING,MULTICAST>信息中没有PROMISC,就说明当前不在混杂模式下,如果有,则在混杂模式下。

2 设置网卡为混杂模式

[root@localhost test]# ifconfig enp0s3 promisc

设置完后,再查看网卡

[root@localhost test]# ifconfig enp0s3
enp0s3: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.0.110  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::df33:8333:2d63:e4b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:60:7b:7f  txqueuelen 1000  (Ethernet)
        RX packets 5451  bytes 472410 (461.3 KiB)
        RX errors 0  dropped 3  overruns 0  frame 0
        TX packets 1037  bytes 95383 (93.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以发现第一行尖括号里有了PROMISC,说明网卡在混杂模式下

3 取消网卡混杂模式

[root@localhost test]# ifconfig enp0s3 -promisc
# 再查看
[root@localhost test]# ifconfig enp0s3
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.110  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::df33:8333:2d63:e4b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:60:7b:7f  txqueuelen 1000  (Ethernet)
        RX packets 5526  bytes 487616 (476.1 KiB)
        RX errors 0  dropped 3  overruns 0  frame 0
        TX packets 1037  bytes 95383 (93.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

结果说明混杂模式取消了。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/89603272