如何使用 netplan 通过 WiFi 使用 18.04 主机配置桥接网络,以便桥接适配器与 VirtualBox 一起工作?

如何使用 netplan 通过 WiFi 使用 18.04 主机配置桥接网络,以便桥接适配器与 VirtualBox 一起工作?

我正在尝试通过桥接适配器将 Ubuntu 18.04 客户机连接到 Kubuntu 18.04 主机笔记本电脑上的网络。但是,Ubuntu 客户机无法识别它。

我读过有关如何修改 netplan .yaml 文件的文章,但我不太清楚如何使用它来设置桥接网络。

到目前为止,yaml 文件如下所示:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

# Added everything from here myself
  ethernets:
    enp1s0:
      dhcp4: true
      dhcp6: true

  wifis:
    wlp2s0:
      dhcp4: true
      dhcp6: true

  bridges:
    br0:
      interfaces: [enp1s0, wlp2s0]
      dhcp4: true
      dhcp6: true
    br1:
      interfaces: [enp1s0]
      dhcp4: true
      dhcp6: true

我跑步时得到了这个# netplan generate

Error in network definition //etc/netplan/01-network-manager-all.yaml line 12 column 6: wlp2s0: No access points defined

我不确定我到底做错了什么。我是否应该列出接口正在使用的每个接入点?

我查看过几个网站:

答案1

我不熟悉 netplan,但大概这会为 NetworkManager 创建连接配置文件。

NetworkManager 中的 WiFi 连接配置文件必须始终指定 SSID。这意味着,您无法创建不与特定网络绑定的 WiFi 配置文件。这很合理 (??),因为配置文件本质上包含连接到 WiFi 网络所需的参数。由于这些参数通常在网络之间有所不同(开放网络除外),因此您需要每个网络都有一个配置文件。

在 NetworkManager 中,将设备绑定到网桥的属性(connextion.slave-typeconnection.master)也是连接配置文件的一部分。

在 netplan 中,如果您指定 WiFi 网络,则它只能映射到 NetworkManager 可以理解的实体:配置文件。由于您未指定 SSID,因此它无法创建任何配置文件并会失败。

目前还不清楚 netplan 或 NetworkManager 在这里可以做得更好。

答案2

根据您发布的一个链接(https://netplan.io/examples#connecting-to-a-wpa-personal-wireless-network),您必须定义通过 WiFi 访问的网络的 SSID 和密码;请参阅此代码片段:

    network:
      version: 2
      renderer: networkd
      wifis:
        wlp2s0b1:
          dhcp4: no
          dhcp6: no
          addresses: [192.168.0.21/24]
          gateway4: 192.168.0.1
          nameservers:
             addresses: [192.168.0.1, 8.8.8.8]
          access-points:
            "network_ssid_name":
              password: "**********"

相关部分是“接入点”块。如果您的 SSID 是“MyNet”,密码是“S3cr3tPwd!”:

          access-points:
            "MyNet":
              password: "S3cr3tPwd!"

答案3

我建议使用 KVM 而不是 Virtualbox。优点很多。我的虚拟机有一个 Netplan 桥接 VLAN。这是我的 YAML:

network:
 version: 2
 renderer: networkd
 ethernets:
  enp65s0f0:
    dhcp4: false
    dhcp6: false
  enp65s0f1:
    dhcp4: false
    dhcp6: false
  enp5s0:
    dhcp4: true
    dhcp6: true
  enp0s31f6:
    dhcp4: false
    dhcp6: false
 bonds:
  bond-lan:
    dhcp4: true
    dhcp6: true
    interfaces:
      - enp65s0f0
      - enp65s0f1
    parameters:
      mode: 802.3ad
 bridges:
   br0:
     addresses: [ 10.0.1.1/24 ]
     nameservers:
       search: [local]
       addresses: [10.0.0.3]
     interfaces: [ enp5s0 ]
 vlans:
   vlan15:
   accept-ra: no
   id: 15
   link: enp5s0

它有 4 个网卡,两个绑定在一起,一个用于我的虚拟机的桥接 VLAN。请小心使用 YAML 文件,它们对格式非常敏感。我很确定您的内核参数中还有一个防火墙选项,需要设置它才能不检查桥接流量。您还可以输入适当的规则。如果您使用 KVM,请安装 Virt-Manager 并在 VM 的首选项中将接口设置为 br0(至少在我的配置中)。

相关内容