我有一些 Qemu KVM 虚拟机(主要是 CentOS 和 Debian),我的主机是 Ubuntu。我使用 virtio virbr0 配置了虚拟机网络,还通过创建虚拟接口、将虚拟机连接到该虚拟接口(使用 dnsmasq 分配 IP)以及通过主机进行 NAT 流量来使其工作。
现在,出于学习的目的,我真的很想创建一个桥接器,将我的 WiFi 接口添加为端口之一并将我的虚拟机连接到桥接器中,但我没有成功。正如上面提到的,我也使用了 Debian 的桥接教程尝试让 ebtables“伪装”我的 VM MAC 地址(因为 AP 不会接受与之前验证的 MAC 地址不同的 MAC 地址)。但我的问题是我什至无法将我的 wifi 添加为桥接端口。
我的/etc/network/interfaces:
auto lo
iface lo inet loopback
# this is my wifi card (god knows why udev gave this name)
auto wlx44334c371663
iface wlx44334c371663 inet manual
# of course I added my wifi real MAC in bridge_hw option
auto br0
iface br0 inet dhcp
pre-up iwconfig wlx44334c371663 essid myESSID
bridge_hw 11:11:11:11:11:11
bridge_ports wlx44334c371663
bridge_stp off
bridge_waitport 0
bridge_fd 0
bridge_maxwait 0
当我启动它时:
$ sudo ifup br0
Waiting for a max of 0 seconds for wlx44334c371663 to become available.
can't add wlx44334c371663 to bridge br0: Operation not supported
Internet Systems Consortium DHCP Client 4.3.3
Copyright 2004-2015 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/br0/11:11:11:11:11:11
Sending on LPF/br0/11:11:11:11:11:11
Sending on Socket/fallback
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 3 (xid=0xe1868a4f)
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 8 (xid=0xe1868a4f)
DHCPDISCOVER on br0 to 255.255.255.255 port 67 interval 8 (xid=0xe1868a4f)
...
上面的通知:
无法将 wlx44334c371663 添加到桥 br0:不支持操作
当然,当我检查网桥时,我的wifi不是br0的一个接口:
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.44334c371663 no
virbr0 8000.000000000000 yes
当我启动 br0 时,我的 wifi 是打开还是关闭似乎并不重要,它只是不会将其添加为一个接口
如果我尝试使用 brctl 添加 wifi,也会发生同样的情况:
$ sudo brctl addif br0 wlx44334c371663
can't add wlx44334c371663 to bridge br0: Operation not supported
PS:这是一个外部 wifi 设备(rt2800usb),我也有笔记本电脑板载 wifi(ath10k_pci),但似乎都不起作用。虽然以太网可以工作(但我所在的地方没有以太网电缆)。那么,我做错了什么?