searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Linux 网络接口混杂模式

2024-10-10 02:06:23
20
0

Linux 网络接口混杂模式(Promiscuous mode)认知

网络接口的混杂模式

混杂模式(Promiscuous mode),简称 Promisc mode,俗称监听模式。混杂模式通常被网络管理员用来诊断网络问题,但也会被无认证的、想偷听网络通信的人利用。混杂模式是指一个网卡会把它接收的所有网络流量都交给CPU,而不是只把它想转交的部分交给CPU

使用ifconfig 或者 netstat-i命令查看一个网卡是否开启了混杂模式,当输出包含 PROMISC 时,表明该网络接口处于混杂模式。

 启用网卡的混杂模式,可以使用下面这条命令:ifconfig eth0 promisc

# ifconfig eth0 promisc
# ifconfig
 eth0
eth0:
 flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
可以看到多了一个 PROMISC 状态

使网卡退出混杂模式,可以使用下面这条命令:ifconfig eth0 -promisc

# ifconfig eth0 -promisc
# ifconfig
 eth0
eth0:
 flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

#
 netstat -i
Kernel
 Interface table
Iface
      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0
      1500    43352      0      0 0         31769      0      0      0 BMPRU
将网络设备加入 Linux bridge 后,会自动进入混杂模式: 把一个 veth 虚拟设备添加到网桥

# ip link add veth5 type veth
# brctl
 addbr br5
# brctl
 addif br5 veth5
#
 dmesg | grep promiscuous
  device
 veth5 entered promiscuous mode
如上所示,veth5 设备加入Linux bridge后,可以通过查看内核日志看到 veth5 自动进入混杂模式,而且无法退出,直到将 veth5  Linux bridge 中移除。即使手动将网卡设置为非混杂模式,实际上还是没有退出混杂模。

 # ip link set eth1 promisc on
The flag will be updated to BMPRU. Flag details are as follows:

  • B flag is for broadcast
  • M flag is for multicast
  • P flag is for promisc mode
  • R is for running
  • U is for up

 

netstat 输出的状态BMPRU包含了状态P就是混杂模式。

0条评论
作者已关闭评论
Top123
29文章数
3粉丝数
Top123
29 文章 | 3 粉丝
Top123
29文章数
3粉丝数
Top123
29 文章 | 3 粉丝
原创

Linux 网络接口混杂模式

2024-10-10 02:06:23
20
0

Linux 网络接口混杂模式(Promiscuous mode)认知

网络接口的混杂模式

混杂模式(Promiscuous mode),简称 Promisc mode,俗称监听模式。混杂模式通常被网络管理员用来诊断网络问题,但也会被无认证的、想偷听网络通信的人利用。混杂模式是指一个网卡会把它接收的所有网络流量都交给CPU,而不是只把它想转交的部分交给CPU

使用ifconfig 或者 netstat-i命令查看一个网卡是否开启了混杂模式,当输出包含 PROMISC 时,表明该网络接口处于混杂模式。

 启用网卡的混杂模式,可以使用下面这条命令:ifconfig eth0 promisc

# ifconfig eth0 promisc
# ifconfig
 eth0
eth0:
 flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
可以看到多了一个 PROMISC 状态

使网卡退出混杂模式,可以使用下面这条命令:ifconfig eth0 -promisc

# ifconfig eth0 -promisc
# ifconfig
 eth0
eth0:
 flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

#
 netstat -i
Kernel
 Interface table
Iface
      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0
      1500    43352      0      0 0         31769      0      0      0 BMPRU
将网络设备加入 Linux bridge 后,会自动进入混杂模式: 把一个 veth 虚拟设备添加到网桥

# ip link add veth5 type veth
# brctl
 addbr br5
# brctl
 addif br5 veth5
#
 dmesg | grep promiscuous
  device
 veth5 entered promiscuous mode
如上所示,veth5 设备加入Linux bridge后,可以通过查看内核日志看到 veth5 自动进入混杂模式,而且无法退出,直到将 veth5  Linux bridge 中移除。即使手动将网卡设置为非混杂模式,实际上还是没有退出混杂模。

 # ip link set eth1 promisc on
The flag will be updated to BMPRU. Flag details are as follows:

  • B flag is for broadcast
  • M flag is for multicast
  • P flag is for promisc mode
  • R is for running
  • U is for up

 

netstat 输出的状态BMPRU包含了状态P就是混杂模式。

文章来自个人专栏
云原生最佳实践
29 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0