已复制
全屏展示
复制代码

Linux网卡开启混杂模式


· 1 min read

一. 混杂模式介绍

网卡正常情况下,即非混杂混杂模式下,只接收目的地址是本机的数据包。在以太网上,有大量的数据包,但真正发送给自己的非常少,所以非混杂模式下可以极大的减轻网卡的处理负担。混杂模式(Promiscuous Mode)则是相反,网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

有时候为嗅探到网络上的数据,需要将网卡设置到混杂模式,进入该模式将网络上的数据一并抓获,设置方式 CentOS 和 Ubuntu 开启混杂模式大体相同。

二. 查看混杂模式

有关键字PROMISC表示开启

# 方法1
ip link show enp2s0
2: enp2s0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether ac:e2:d3:4d:4a:52 brd ff:ff:ff:ff:ff:ff

# 方法2
ifconfig enp2s0
enp2s0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 172.16.130.83  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::177:37f9:572:3ecd  prefixlen 64  scopeid 0x20<link>
        ether ac:e2:d3:4d:4a:52  txqueuelen 1000  (Ethernet)
        RX packets 27989169  bytes 6321222023 (6.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 69903080  bytes 93642610689 (93.6 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

三. 设置混杂模式

# 方法1
sudo ip link set dev eth1 promisc on
sudo ip link set dev eth1 promisc off

# 方法2
ifconfig eth1 promisc
ifconfig eth1 -promisc

# 方法3(for macos)
tcpdump -Ii en0


# centos 持久化
vim /etc/sysconfig/network-scripts/ifcfg-eth1
PROMISC=yes

# ubuntu 持久化
auto eth0
iface eth0 inet dhcp
    up ifconfig eth0 promisc
    ...

文章推荐