将网络接口配置为混杂模式

将网络接口配置为混杂模式

我在 VMware Workstation 上使用 Ubuntu 12.04 LTS 服务器。我需要将网络接口配置为混杂模式。

这是我的配置:

auto eth1
iface eth1 inet manual
up ip address add 0/0 dev $IFACE
up ip link set $IFACE up
up ip link set $IFACE promisc on

down ip link set $IFACE promisc off
down ip link set $IFACE down

当我执行时

netstat -i

该标志是BMRU

我的配置是否正确或者我是否需要执行一些额外的命令?

答案1

您的接口未处于混杂模式。使用:

ip link set eth1 promisc on

该旗帜将更新为BMPRU。旗帜详细信息如下:

  • B标志用于广播
  • M标志用于多播
  • P标志用于混杂模式
  • R用于跑步
  • U是为了向上

答案2

启用混杂模式

vikram@vikram-Lenovo-G580:~$ sudo ifconfig eth0 promisc
vikram@vikram-Lenovo-G580:~$ netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR  Flg
eth0       1500 0     26631      0      0 0         27143      0      0      0 BMPRU

禁用混杂模式

sudo ifconfig eth0 -promisc
sudo tail -f /var/log/syslog
kernel: [ 2155.176013] device eth0 left promiscuous mode

netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0     29172      0      0 0         29850      0      0      0 BMRU

答案3

好吧,问题不在于网卡,因为 VMware 始终为虚拟接口启用混杂模式。但问题在于配置。在接口文件中启用混杂模式是不够的。我不得不添加以下行:

ifconfig eth1 up
ifconfig eth1 promisc

/etc/rc.local文件中,因为当我重新启动网络服务时,eth1 被关闭。因此添加此行将告诉操作系统不要关闭 eth1。

相关内容