在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 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
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
信息中没有PROMISC,就说明当前不在混杂模式下,如果有,则在混杂模式下。
2 设置网卡为混杂模式
[root@localhost test]# ifconfig enp0s3 promisc
设置完后,再查看网卡
[root@localhost test]# ifconfig enp0s3
enp0s3: flags=4419 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
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 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
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