专栏首页WalkingCloudLinux下网卡的混杂模式浅谈

Linux下网卡的混杂模式浅谈

混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。

一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。

网卡具有如下的几种工作模式: 1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。 2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。 3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 Mac地址的帧。 4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。

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

Linux下设置把网卡设置成混杂模式的命令也很简单

ifconfig eth0 promisc

取消混杂模式

ifconfig eth0 -promisc

小知识:使用tcpdump抓包时网卡会进入混杂模式,可以在/var/log/messages里看到

如下图,开启tcpdump抓包后,在新窗口克隆会话tail -f /var/log/messages可以看到系统日志

kernel: device eth0 entered promiscuous mode

实际上网卡是否处于混杂模式并不能根据ifconfig查看是否有PROMISC字段来判断,

例如开启tcpdump抓包,这时ifconfig查看并没有PROMISC字段

实际上,网卡是否处于PROMISC模式,ifconfig并不是最直接的判断依据,换句话说就是ifconfig能看到PROMISC标记表示一定处于混杂模式,但处于混杂模式并不一定能看到PROMISC标记。内核判断网卡是否处于混杂模式是看/sys/class/net/eth0/flags的值,如果置位了0x100,则处于混杂模式

[root@CentOS_DIY ~]# cat /usr/include/linux/if.h | grep -i promisc

#define IFF_PROMISC 0x100 /* receive all packets */

google查到的相关解释

本文分享自微信公众号 - WalkingCloud(WalkingCloud2018),作者:yuanfan2012

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CentOS7系统双网卡环境下添加静态路由的几种方法

    1)ens33:10.20.10.93/23是外网网卡,也是默认网卡,网关10.20.10.1

    yuanfan2012
  • CentOS7下yum安装Nginx并启用https

    EPEL (Extra Packages for Enterprise Linux) 是由 Fedora Special Interest Group 为企业 ...

    yuanfan2012
  • CentOS7下部署Cobbler实现PXE+Kickstart自动化安装【脚本版】

    cobbler_onekey_install.sh--------------一键安装cobbler脚本

    yuanfan2012
  • ubuntu设置软路由的众多尝试

    dhcp 的网卡设置为server的有线网卡,设置为静态ip 192.168.19.1 client直接连server的网卡,client可以dhcp获得ip ...

    羽翰尘
  • 打造云端测试梦工厂 腾讯WeTest参展TFC 2017

    2017第十四届TFC全球移动游戏大会暨智能娱乐展2月23日在北京举行,很多公司都选择在新一年伊始举办的TFC期间公布新一年公司的愿景规划,作为国内游戏测试龙头...

    WeTest质量开放平台团队
  • 威尼斯国际电影节|非VR部分黑马爆款皆有,VR部分“老朋友”居多

    威尼斯电影节于1932 年在意大利威尼斯成立,是威尼斯双年展(1895年创立)的一部分。今年的威尼斯双年展包括一系列独立的活动:国际艺术展、国际当代音乐节、国际...

    VRPinea
  • 一到秒杀就瘫痪?压测大师保你后台稳健

    ? WeTest 导读 国内的电子商务经历了整个产业多年发展,依然在快速的增长,交易额仍在不断的递增,电子商务行业已经初步形成了功能完善的业态体系。与此同时,...

    WeTest质量开放平台团队
  • 云游戏+AI自动化,WeTest携新产品“深度兼容测试”圆满亮相ChinaJoy 2018

    8月3日-6日,第十六届中国国际数码互动娱乐展览会(以下简称ChinaJoy)在上海正式启幕。在本届CJ上,连续第三年参展的WeTest与游戏安全、前沿技术、G...

    WeTest质量开放平台团队
  • 了解一波经典的 I/O 模型

    上图以 UDP 的 Socket 调用为例,进程调用 recvfrom 后,系统调用直到数据报到达且被复制到用户空间中或发生错误才返回。进程从调用开始到它返回的...

    Cloud-Cloudys
  • Python的问题解决: IOError

    查看进程pid, ll /proc/<pid>/fd 发现, stderr也就是fd为2的文件, 竟然是个pipe, 是个broken pipe, 错误的地方找...

    py3study

扫码关注云+社区

领取腾讯云代金券