我应该怎么做才能让我的桥接器使用 WiFi 互联网连接?

我应该怎么做才能让我的桥接器使用 WiFi 互联网连接?

是否配置

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)视为欺骗尝试,并取消您的身份验证。

您可以使用virshvirt-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

virsh 的使用指南:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/chap-Managing_guest_virtual_machines_with_virsh.html

答案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

相关内容