是否配置
eth0 Link encap:Ethernet HWaddr 54:04:a6:3d:36:ff
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3300 errors:0 dropped:0 overruns:0 frame:0
TX packets:3300 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:950771 (950.7 KB) TX bytes:950771 (950.7 KB)
wlan0 Link encap:Ethernet HWaddr 30:5a:3a:60:5d:c0
inet addr:192.168.0.105 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7cf4:8ce5:ba7c:8fd3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1553 errors:0 dropped:0 overruns:0 frame:0
TX packets:1223 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1007907 (1.0 MB) TX bytes:524507 (524.5 KB)
问题
我已经为我的 QEMU Windows 客户机设置了网络接口bridge0
,并通过命令行启用了它
brctl addbr bridge0
qemu .. -netdev bridge,br=bridge0,id=net0 -device virtio-net-pci,netdev=net0
(并允许bridge0进入/etc/qemu/bridge.conf
)。
使用此设置,QEMU 客户机无法访问 Internet。例如,在主机上,通过该网桥 ping 不起作用:
ping -I bridge0 8.8.8.8
如果我尝试将我的 wifi 卡(具有工作连接)添加到桥接:
brctl addif bridge0 wlan0
我收到Operation not supported
错误。我在网上看到很多消息这是不可能的.但我该如何解决这个问题呢?
我需要使用桥接器将自定义
iptables
规则应用到我的客人网络连接。
我应该怎么做才能让我的桥接器使用 WiFi 互联网连接?
我该如何参与iptables
解决我的问题?如何为我的网桥创建 Sub-NAT 来控制访客?
答案1
让 libvirt 处理这个问题。Libvirt 有一个默认的 NAT 网络,它将为您处理所有转发、伪装和寻址。此 NAT 网络在 libvirt 部署中已预先配置,并且字面上名为“默认”。NAT 是通过 WiFi 连接让虚拟机访问互联网的最合理方式。
此外,您几乎永远不能使用 WiFi 作为桥梁。首先,因为主机接口通常不支持它。其次,因为几乎所有无线接入点都会将第二个 MAC 地址(来自您的 VM)视为欺骗尝试,并取消您的身份验证。
您可以使用virsh
和virt-install
通过命令行管理 libvirt。您还可以使用virt-manager
通过 GUI 管理 libvirt,类似于 vSphere 客户端对 ESXi 的工作方式。这两个管理前端都可以连接到远程主机。管理工具远不止这些,任何工具都可以为您工作。virt-manager
可能是最容易使用的。
有关 libvirt 网络的更多信息:http://wiki.libvirt.org/page/Networking
一些 libvirt 管理工具(包括已经提到的):http://www.linux-kvm.org/page/Management_Tools
答案2
仍然可以使用wpa_supplicant
& iw
&brctl
三重奏来完成桥接。
wpa_supplicant -B -b br0 -i wlan0 -c wpa.conf -Dwext
wpa_supplicant- Wi-Fi 保护访问客户端和 IEEE 802.1X 请求者
-B
在后台运行守护进程。-b br_ifname
可选的桥接接口名称。(每个接口)-i ifname
监听接口-c filename
配置文件的路径。
wpa.conf - wpa_supplicant 配置文件示例:
network={ ssid="MYSSID" psk="passphrase" }
创建接口时启用 4 地址模式。需要无线芯片支持。(又名 AP-to-Sta WDS)。
iw dev wlan0 set 4addr on
添加接口到桥接器:
brctl addif br0 wlan0