让 Ubuntu 22.04 桌面版开机自动启动桥接网络并且桥接特定网卡,通常需要通过 Netplan 来配置。Netplan 是 Ubuntu 中用于配置网络的标准工具。

NetworkManager是 Ubuntu 桌面版默认的网络管理工具,它提供了图形界面。如果选择了 renderer: NetworkManager,确保在 NetworkManager 的图形界面中,该物理网卡没有独立的 IP 配置,而是作为桥接的一部分。可能需要在 NetworkManager 中删除该物理网卡的现有连接配置,然后让 Netplan 创建和管理桥接。

备份旧文件并编辑/etc/netplan/01-network-manager-all.yaml文件(文件名可能是 01-network-manager-all.yaml 或者 50-cloud-init.yaml 等)。

cd /etc/netplan
cp 01-network-manager-all.yaml 01-network-manager-all.yaml.bak
vim 01-network-manager-all.yaml

更新文件内容

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp0s31f6: # 物理网卡
      dhcp4: no
      dhcp6: no
  bridges:
    bridge0:
      interfaces: [enp0s31f6] # 物理网卡
      dhcp4: no
      # 在这里配置静态IP,NetworkManager会尝试应用它
      addresses: [192.168.10.192/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [223.5.5.5, 223.6.6.6]

如果不希望NetworkManager接管网络配置,可使用如下配置

network:
  version: 2
  renderer: networkd  # networkd 对于桥接更稳定
  ethernets:
    enp0s31f6: # 物理网卡名称
      dhcp4: no
      dhcp6: no
  bridges:
    bridge0: # 桥接接口名称
      interfaces: [enp0s31f6] # 物理网卡名称
      dhcp4: no # 如果设置静态 IP,选no
      dhcp6: no # 根据你的网络情况设置
      addresses: [192.168.10.192/24] # 静态 IP 和子网掩码
      gateway4: 192.168.10.1       # 网关地址
      nameservers:
        addresses: [223.5.5.5, 223.6.6.6] # DNS 服务器地址
      parameters:
        stp: true # 建议开启 STP (Spanning Tree Protocol) 防止网络环路
        forward-delay: 4
      # 如果使用的是 NetworkManager作为renderer,并且希望NetworkManager管理这个桥接
      # 可以尝试添加以下行,但这取决于NetworkManager的版本和配置
      # optional: true
      # activation-mode: manual # 或者 auto