混杂模式介绍(转)

在Linux服务器上使用tcpdump对eth0这块网卡抓包时,如果你仔细看屏幕会发现有如下一行:

device eth0 entered promiscuius mode

这句的意思是网卡eth0进入了混杂模式,意思就是只要是eth0收到的网络包都抓,不管这些网络包是不是发给我的。以下是网上大牛写的关于网卡所处的几种模式,供大家进一步学习。

下面为转载。

版权声明:本文为CSDN博主「chengqiuming」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接: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
结果说明混杂模式取消了。
————————————————
版权声明:本文为CSDN博主「chengqiuming」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chengqiuming/article/details/89603272

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值