如何在 virt-manager 中配置桥接网络(Bridge 模式) 笔记250710

920 阅读19分钟

如何在 virt-manager 中配置桥接网络(Bridge 模式) 笔记250710

在 virt-manager 中配置桥接网络(Bridge 模式)可使虚拟机直接接入宿主机的物理网络,获得与物理机同网段的独立 IP。以下是详细操作步骤及注意事项:


📶 一、创建宿主机的网桥设备

在 Linux 系统中创建网桥(bridge)设备有多种方法:

方法 1:使用 iproute2 创建(临时生效)
# 创建网桥 br0
sudo ip link add name br0 type bridge
# 启用网桥
sudo ip link set br0 up
# 将物理网卡(如 enp1s0)加入网桥
sudo ip link set enp1s0 master br0
# 释放物理网卡的 IP(重要!)
sudo ip addr flush dev enp1s0
# 为网桥分配 IP(动态/静态)
sudo dhclient br0   # 动态获取
# 或手动配置静态 IP
sudo ip addr add 192.168.1.100/24 dev br0
方法 2:使用 bridge-utils 工具(旧版推荐)
# 安装工具
sudo apt install bridge-utils  # Debian/Ubuntu
sudo yum install bridge-utils  # RHEL/CentOS

# 创建网桥
sudo brctl addbr br0

# 添加物理网卡到网桥
sudo brctl addif br0 enp1s0

# 启动网桥
sudo ip link set br0 up
方法 3:通过NetworkManager永久设置
# 创建网桥接口
sudo nmcli con add type bridge ifname br0 con-name br0

# 将物理网卡加入网桥(关键步骤) con-name及之后部分可以省略, 会自动命名
sudo nmcli con add type bridge-slave ifname <物理网卡名> master br0 con-name 自定义连接名    #### con-name 及之后的NetworkManager专属的连接名可以自

# 设置静态 IP
sudo nmcli con modify br0 ipv4.addresses 192.168.1.100/24
sudo nmcli con modify br0 ipv4.gateway 192.168.1.1
sudo nmcli con modify br0 ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli con modify br0 ipv4.method manual

# 或使用 DHCP
sudo nmcli con modify br0 ipv4.method auto定义也可省略

# 关闭原物理网卡连接(避免冲突)
sudo nmcli con down "<原物理网卡连接名>"  # 如 "Wired Connection 1"

# 启用网桥
sudo nmcli con up br0
sudo nmcli con up bridge-slave-eno1  # 启动从属连接:cite[1]:cite[3]

禁用 STP(可选,避免网络延迟)

sudo nmcli con modify br0 bridge.stp no:cite[1]:cite[3]:cite[6]
方法 4:通过配置文件永久设置
Debian/Ubuntu (netplan)
# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  bridges:
    br0:
      dhcp4: yes
      interfaces: [enp1s0]

应用配置:

sudo netplan apply
RHEL/CentOS (ifcfg)
# 创建网桥配置文件 /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0

# 修改物理网卡配置 /etc/sysconfig/network-scripts/ifcfg-enp1s0
DEVICE=enp1s0
ONBOOT=yes
BRIDGE=br0

重启网络服务:

sudo systemctl restart NetworkManager
查看网桥状态
# 查看所有网桥
bridge link       # 或 brctl show
# 查看所有网桥
brctl show       # 或 bridge link






💻 二、在 virt-manager 中配置虚拟机桥接网络

  1. 打开虚拟机硬件配置 右键目标虚拟机 → Edit → Virtual Hardware → NIC。
  2. 修改网络设置
  • Network source → 选择 Bridge device
  • Device name → 输入宿主机网桥名称(如 br0)
  • Device model → 建议选 virtio(高性能虚拟化驱动)
  1. 点击 Apply 保存配置。

  1. 打开虚拟机设置
    • 在 virt-manager 中选择虚拟机 → 点击顶部菜单栏的 "i" 图标(虚拟硬件详情)。
  2. 修改网络设备
    • 选择 "NIC" 硬件 → 设置 "网络源""指定共享设备名称"
    • "设备名称" 中填写 "网桥名"。
    • 选择 "设备模型"virtio(高性能驱动)。
    • 点击 "应用"

  1. 打开虚拟机设置

    • 启动 virt-manager:virt-manager
    • 选择虚拟机 → 点击 "打开"(需先关闭虚拟机)。
  2. 修改网络设置

    • 进入 "虚拟硬件" 标签页 → 选择 "NIC" 设备。

    • 网络源:选择 "指定共享设备名称"

    • 设备名称:输入桥接设备名(如 br0)。

    • 设备模型:推荐 virtio(高性能)。

    • 点击 "应用"

  3. 启动虚拟机

    • 虚拟机将直接通过桥接 br0 连接到物理网络,自动获取 IP(由路由器 DHCP 分配)。

















1️⃣ 参考 1

在 virt-manager 中配置桥接网络(Bridge 模式)可使虚拟机直接接入物理网络,获得与宿主机同网段的独立 IP。以下是详细步骤:

前置准备

  1. 安装必要工具(以 Debian/Ubuntu 为例):
    sudo apt install bridge-utils virt-manager libvirt-daemon-system
    
  2. 停止默认网络
    sudo virsh net-destroy default
    sudo virsh net-autostart --disable default
    

步骤 1:创建网桥(物理机操作)

方法一:使用 NetworkManager(推荐)
  1. 编辑连接(假设物理网卡为 enp3s0):
    sudo nmcli connection add type bridge con-name br0 ifname br0
    sudo nmcli connection add type bridge-slave ifname enp3s0 master br0
    
  2. 启用网桥并重启网络:
    sudo nmcli connection up br0
    
方法二:手动编辑配置文件(/etc/netplan/*.yaml)
network:
  version: 2
  renderer: networkd
  bridges:
    br0:
      interfaces: [enp3s0]  # 替换为你的物理网卡
      dhcp4: true          # 或配置静态 IP
      # 静态 IP 示例:
      # addresses: [192.168.1.10/24]
      # gateway4: 192.168.1.1
      # nameservers:
      #   addresses: [8.8.8.8]
  ethernets:
    enp3s0: {}  # 保留物理网卡空配置

应用配置:

sudo netplan apply

步骤 2:在 virt-manager 中配置桥接

  1. 打开虚拟机设置
    • 在 virt-manager 中选择虚拟机 → 点击顶部菜单栏的 "i" 图标(虚拟硬件详情)。
  2. 修改网络设备
    • 选择 "NIC" 硬件 → 设置 "网络源""指定共享设备名称"
    • "设备名称" 中填写 br0
    • 选择 "设备模型"virtio(高性能驱动)。
    • 点击 "应用"

验证桥接网络

  1. 在虚拟机内
    • 重启网络服务(如 sudo systemctl restart NetworkManager)。
    • 检查 IP 是否与宿主机同网段:
      ip addr show
      
  2. 在宿主机上检查网桥
    brctl show
    
    输出应包含 br0 和物理网卡(如 enp3s0)。

故障排除

  • 网桥未激活
    sudo ip link set br0 up  # 启用网桥
    
  • 虚拟机无网络
    • 确认 br0 已分配 IP(宿主机执行 ip addr show br0)。
    • 检查防火墙是否允许流量:
      sudo iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
      
  • 权限问题
    • 将用户加入 libvirt 组:
      sudo usermod -aG libvirt $USER
      

注意:桥接模式需要物理网络支持 DHCP 或手动配置虚拟机 IP。虚拟机 IP 将由物理路由器分配(或静态配置),与宿主机无关。

通过以上步骤,虚拟机即可通过桥接模式直接接入外部网络。

















2️⃣ 参考 2

在 virt-manager 中配置桥接网络(Bridge 模式)可使虚拟机直接连接到物理网络,如同独立主机一样获取 IP 地址。以下是详细步骤:


一、宿主机创建桥接设备

方法 1:使用 NetworkManager(推荐)
  1. 创建桥接设备 br0
    sudo nmcli connection add type bridge con-name br0 ifname br0
    
  2. 将物理网卡加入桥接(如 enp1s0):
    sudo nmcli connection add type bridge-slave con-name br0-slave ifname enp1s0 master br0
    
  3. 启动桥接
    sudo nmcli connection up br0
    
方法 2:手动配置(无 NetworkManager)
  1. 编辑 /etc/network/interfaces(Debian/Ubuntu):
    auto br0
    iface br0 inet dhcp
        bridge_ports enp1s0  # 物理网卡名称
        bridge_stp off       # 关闭生成树协议
    
  2. 重启网络服务:
    sudo systemctl restart networking
    

验证桥接

ip addr show br0  # 检查桥接设备 IP
bridge link       # 查看桥接成员

二、virt-manager 配置桥接

  1. 打开虚拟机设置

    • 启动 virt-manager:virt-manager
    • 选择虚拟机 → 点击 "打开"(需先关闭虚拟机)。
  2. 修改网络设置

    • 进入 "虚拟硬件" 标签页 → 选择 "NIC" 设备。

    • 网络源:选择 "指定共享设备名称"

    • 设备名称:输入桥接设备名(如 br0)。

    • 设备模型:推荐 virtio(高性能)。

    • 点击 "应用"

  3. 启动虚拟机

    • 虚拟机将直接通过桥接 br0 连接到物理网络,自动获取 IP(由路由器 DHCP 分配)。

















3️⃣ 参考 3

在 virt-manager 中配置桥接网络(Bridge 模式)允许虚拟机直接连接到物理网络,就像宿主机一样拥有独立 IP。以下是详细步骤:


前置准备

  1. 确保宿主机已启用桥接支持

    • 检查内核模块加载:
      lsmod | grep bridge
      
    • 若未加载,启用并设置开机自启:
      sudo modprobe bridge
      echo "bridge" | sudo tee /etc/modules-load.d/bridge.conf
      
  2. 安装必要工具(如未安装):

    # Ubuntu/Debian
    sudo apt install bridge-utils net-tools
    
    # CentOS/RHEL
    sudo yum install bridge-utils net-tools
    

步骤 1:在宿主机创建桥接设备

方法一:使用 NetworkManager(推荐)
  1. 编辑连接配置(以网卡 enp3s0 为例):
    sudo nmcli con edit type ethernet con-name "有线连接"
    
  2. 修改为桥接模式:
    nmcli> set connection.interface-name enp3s0
    nmcli> set ipv4.method auto  # 或手动设置 static + IP
    nmcli> set connection.autoconnect yes
    nmcli> save
    nmcli> add type bridge ifname br0
    nmcli> add type bridge-slave ifname enp3s0 master br0
    nmcli> quit
    
  3. 重启网络:
    sudo systemctl restart NetworkManager
    
方法二:手动编辑配置文件(适用于旧版)
  1. 编辑 /etc/network/interfaces(Debian/Ubuntu):

    auto br0
    iface br0 inet dhcp  # 或 static
        bridge_ports enp3s0
        bridge_stp off
        bridge_fd 0
    
    • 或使用静态 IP:
      iface br0 inet static
         address 192.168.1.100
         netmask 255.255.255.0
         gateway 192.168.1.1
         bridge_ports enp3s0
      
  2. 重启网络服务:

    sudo systemctl restart networking  # 或 netplan apply
    

步骤 2:在 virt-manager 中配置虚拟机

  1. 打开虚拟机设置
    • 关闭虚拟机 → 右键选择 "虚拟硬件详情"
  2. 修改网络设置
    • 选择 "NIC" 设备 → "网络源" 选择 "指定共享设备名称"
    • 设备名称填写桥接接口 br0
    • 设备模型选择 "virtio"(高性能驱动)。
    示例配置:
      网络源: 指定共享设备名称 (Bridge)
      设备名称: br0
      设备模型: virtio
    
  3. 保存并启动虚拟机
    • 启动后,虚拟机将通过 br0 桥接直接获取物理网络的 IP(如 DHCP)。

验证桥接网络

  1. 宿主机检查桥接状态

    brctl show
    
    输出示例:
      bridge name     interfaces
      br0            enp3s0
    
  2. 虚拟机内检查 IP

    ip addr  # 应显示与宿主机同一网段的 IP
    ping 8.8.8.8  # 测试外网连通性
    

















4️⃣ 参考 4

在 virt-manager 中配置桥接网络(Bridge 模式)需要两个主要步骤:在宿主机上创建桥接接口在虚拟机中配置网络。以下是详细步骤:


步骤 1:在宿主机上创建桥接接口

方法一:使用 nmcli(推荐,适用于 NetworkManager)
  1. 查看当前网络接口

    nmcli device status  # 确认物理网卡名称(如 eth0、enp3s0)
    
  2. 创建桥接接口(例如 br0):

    sudo nmcli connection add type bridge con-name br0 ifname br0
    
  3. 将物理网卡添加到桥接

    sudo nmcli connection add type ethernet slave-type bridge master br0 con-name bridge-slave ifname <物理网卡名>
    # 例如:sudo nmcli connection add type ethernet slave-type bridge master br0 con-name bridge-slave ifname eth0
    
  4. 配置桥接的 IP 获取方式

    • DHCP(自动获取):
      sudo nmcli connection modify br0 ipv4.method auto
      
    • 静态 IP(手动设置):
      sudo nmcli connection modify br0 ipv4.method manual \
      ipv4.addresses 192.168.1.100/24 \
      ipv4.gateway 192.168.1.1 \
      ipv4.dns "8.8.8.8"
      
  5. 激活配置

    sudo nmcli connection down "bridge-slave"  # 先关闭物理网卡连接
    sudo nmcli connection up br0              # 启用桥接
    
  6. 验证桥接

    ip addr show br0  # 检查 IP 是否分配
    bridge link       # 确认物理网卡已绑定到 br0
    

方法二:手动修改配置文件(适用于无 NetworkManager 的系统)
  1. 编辑物理网卡配置(以 Debian/Ubuntu 为例):

    sudo nano /etc/network/interfaces
    

    修改内容:

    auto <物理网卡名>
    iface <物理网卡名> inet manual
      up ip link set $IFACE up
      down ip link set $IFACE down
    
    auto br0
    iface br0 inet dhcp  # 或 static
      bridge_ports <物理网卡名>
      # 静态 IP 示例:
      #   address 192.168.1.100
      #   netmask 255.255.255.0
      #   gateway 192.168.1.1
    
  2. 重启网络服务:

    sudo systemctl restart networking
    

步骤 2:在 virt-manager 中配置虚拟机

  1. 打开虚拟机设置

    • 启动 virt-manager → 右键目标虚拟机 → 打开 → 点击顶部工具栏的 虚拟硬件详情(⚙️图标)。
  2. 配置网络设备

    • 在硬件列表中选择 NIC(网络接口卡)。

    • 右侧 网络源 选择 指定共享设备名称

    • 设备名称 中输入桥接接口名(如 br0)。

    • 设备模型 建议选择 virtio(高性能半虚拟化驱动)。

    • 点击 应用

  3. 启动虚拟机

    • 虚拟机将直接通过 br0 桥接接入物理网络,获取与宿主机同网段的 IP。

验证桥接是否成功

  1. 在虚拟机内

    ip addr  # 查看 IP 是否与宿主机同网段
    ping 8.8.8.8  # 测试外网连通性
    
  2. 在宿主机上

    brctl show  # 查看桥接状态(若未安装:sudo apt install bridge-utils)
    

















5️⃣ 参考 5

在virt-manager中配置桥接网络(Bridge模式)的步骤如下,适用于Ubuntu/CentOS等主流Linux发行版:

一、宿主机网桥配置

1. 安装必要工具
# Ubuntu/Debian
sudo apt install bridge-utils libvirt-daemon-system

# CentOS/RHEL
sudo yum install bridge-utils libvirt
2. 创建网桥(以br0为例)
  • Ubuntu(使用netplan): 编辑 /etc/netplan/01-netcfg.yaml

    network:
      version: 2
      bridges:
        br0:
          dhcp4: yes  # 或静态IP
          interfaces: [eth0]  # 物理网卡名
      ethernets:
        eth0:
          dhcp4: no
    

    应用配置:

    sudo netplan apply
    
  • CentOS(传统网络脚本): 创建网桥配置文件 /etc/sysconfig/network-scripts/ifcfg-br0

    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=dhcp
    ONBOOT=yes
    

    修改物理网卡配置(如 /etc/sysconfig/network-scripts/ifcfg-eth0):

    DEVICE=eth0
    TYPE=Ethernet
    ONBOOT=yes
    BRIDGE=br0
    

    重启网络:

    sudo systemctl restart network
    
3. 验证网桥状态
ip a show br0  # 应显示网桥IP和状态
brctl show     # 查看网桥绑定的接口

二、virt-manager虚拟机配置

1. 创建/编辑虚拟机
  • 打开virt-manager,选择虚拟机 → 详情网络接口
  • 删除默认NAT接口,点击 添加硬件网络
2. 设置桥接模式
  • 选择 桥接模式(Bridge),在 源设备 下拉菜单中选择 br0
  • 确保 设备模型virtio(性能最佳)。

















6️⃣ 参考 6

virt-manager 中配置桥接网络(Bridge 模式)需要先在宿主机上创建网桥接口,并将其绑定到物理网卡,然后在虚拟机配置中选择该网桥。以下是详细步骤:


1. 宿主机环境准备

1.1 安装必要的工具

确保系统已安装以下工具:

  • bridge-utils(用于管理网桥)
  • NetworkManager(推荐使用 nmcli 管理网络)
# 对于基于 Red Hat 的系统(如 CentOS/RHEL)
sudo yum install bridge-utils NetworkManager

# 对于基于 Debian/Ubuntu 的系统
sudo apt install bridge-utils network-manager
1.2 启用并启动 NetworkManager
sudo systemctl enable --now NetworkManager

2. 创建网桥接口

2.1 查看物理网卡名称
ip addr show

假设物理网卡为 ens9f0(根据实际设备名称调整)。

2.2 使用 nmcli 创建网桥
# 创建网桥 br0
sudo nmcli connection add type bridge ifname br0 con-name br0

# 将物理网卡绑定到网桥
sudo nmcli connection add type bridge-slave ifname ens9f0 master br0

# 激活网桥和物理网卡
sudo nmcli connection up br0
sudo nmcli connection up bridge-slave-ens9f0
2.3 验证网桥配置
# 查看网桥状态
brctl show

# 查看 IP 地址是否分配到网桥
ip addr show br0

3. 配置虚拟机的桥接网络

3.1 打开 virt-manager

启动 virt-manager 并选择要配置的虚拟机。

3.2 修改虚拟机网络配置
  1. 在虚拟机详情界面,点击 “Add Hardware” 或选择现有的网络接口。
  2. 选择 “Network” 类型,然后在 “Source” 选项中选择 “Bridge”
  3. 在下拉菜单中选择之前创建的网桥(如 br0)。
  4. 确保虚拟机网卡模式为 “Bridge”(桥接模式)。
  5. 保存配置并关闭虚拟机设置。

















7️⃣ 参考 7

在 virt-manager 中配置桥接网络(Bridge 模式)需要结合宿主机的网络配置和虚拟机设置,以下是详细步骤:

一、准备工作

  1. 安装必要工具
    确保宿主机已安装 bridge-utils,不同发行版的安装命令如下:

    • Debian/Ubuntusudo apt-get install bridge-utils
    • CentOS/RHELsudo yum install bridge-utils
  2. 确认物理网卡名称
    使用 ip addr show 命令查看物理网卡名称(如 eth0enp0s25)。

二、配置宿主机网桥

方法一:命令行临时配置(重启后失效)
  1. 创建网桥并绑定物理网卡

    sudo brctl addbr br0          # 创建网桥 br0
    sudo brctl addif br0 eth0     # 将物理网卡 eth0 加入网桥
    sudo ip link set br0 up       # 启用网桥
    
  2. 移除物理网卡的 IP 并分配给网桥

    sudo ip addr del dev eth0 192.168.1.8/24  # 删除物理网卡的 IP
    sudo ip addr add 192.168.1.8/24 dev br0  # 给网桥配置 IP
    sudo route add default gw 192.168.1.1 br0  # 添加默认路由
    
方法二:配置文件持久化(推荐)
  1. 编辑物理网卡配置文件

    • Debian/Ubuntu/etc/network/interfaces):
      auto eth0
      iface eth0 inet manual
          bridge_ports eth0
          bridge_stp off
      
    • CentOS/RHEL/etc/sysconfig/network-scripts/ifcfg-eth0):
      DEVICE=eth0
      TYPE=Ethernet
      ONBOOT=yes
      BRIDGE=br0
      
  2. 创建网桥配置文件

    • Debian/Ubuntu/etc/network/interfaces):
      auto br0
      iface br0 inet static
          address 192.168.1.8/24
          gateway 192.168.1.1
          bridge_ports eth0
          bridge_stp off
      
    • CentOS/RHEL/etc/sysconfig/network-scripts/ifcfg-br0):
      DEVICE=br0
      TYPE=Bridge
      ONBOOT=yes
      BOOTPROTO=static
      IPADDR=192.168.1.8
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      
  3. 重启网络服务

    sudo systemctl restart networking  # Debian/Ubuntu
    sudo systemctl restart network    # CentOS/RHEL
    
方法三:使用 NetworkManager(适用于支持的发行版)
  1. 创建网桥连接

    sudo nmcli connection add type bridge ifname br0
    sudo nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses 192.168.1.8/24 ipv4.gateway 192.168.1.1
    
  2. 绑定物理网卡到网桥

    sudo nmcli connection add type bridge-slave ifname eth0 master br0
    
  3. 启用连接

    sudo nmcli connection up bridge-br0
    sudo nmcli connection up bridge-slave-eth0
    

三、配置 virt-manager 虚拟机

  1. 打开 virt-manager
    启动图形界面工具,选择需要配置的虚拟机,点击 编辑虚拟硬件

  2. 添加桥接网络设备

    • 点击 添加硬件网络
    • 网络源 中选择 桥接网络,并从下拉菜单中选择之前创建的网桥(如 br0)。
    • 确保 模型 选择为 virtio(推荐)或 e1000,以获得更好的性能。
  3. 配置虚拟机网络

    • 启动虚拟机,进入系统后配置网络为 DHCP 或静态 IP(需与宿主机网桥在同一网段)。

















8️⃣ 参考 8

  1. 理解桥接网络模式

    • 桥接网络模式是将虚拟机的虚拟网卡直接连接到宿主机的物理网卡,就像虚拟机和宿主机都在同一个物理网络中一样。这样虚拟机可以像独立的物理机一样与其他网络设备通信。
  2. 在宿主机上创建桥接接口(以 Linux 为例)

    • 方法一:基于命令行(以 RHEL 系列为例)

      • 编辑网络接口配置文件,通常文件路径为/etc/sysconfig/network - scripts/ifcfg - eth0(假设物理网卡名称为 eth0)。找到DEVICEBOOTPROTO等关键配置项。
      • 创建一个新的桥接接口配置文件,如/etc/sysconfig/network - scripts/ifcfg - br0。设置DEVICE = br0TYPE = BridgeBOOTPROTO = dhcp(如果使用 dhcp 获取 ip 地址)或BOOTPROTO = static(如果使用静态 IP 地址)。如果是静态 IP,还需要设置IPADDRNETMASKGATEWAY等参数。同时,在文件中添加ONBOOT = yes,确保开机自启。
      • 修改物理网卡配置文件(/etc/sysconfig/network - scripts/ifcfg - eth0),将BOOTPROTO设置为none,并添加BRIDGE = br0,表示将其桥接到 br0 桥接接口。
      • 使用systemctl restart network命令重启网络服务,使桥接接口生效。
    • 方法二:基于网络管理工具(如 nm - cli)

      • 首先,查看物理网络接口的名称,可以使用nm - cli命令。例如,物理接口名称为 enp0s3。
      • 创建桥接连接,命令为nm - cli con add ifname br0 type bridge con - name bridge - br0 autoconnect yes,这将创建一个名为 bridge - br0 的桥接连接,接口名称为 br0,并且设置自动连接。
      • 将物理接口添加到桥接连接中,使用命令nm - cli con mod enp0s3 master bridge - br0,将物理接口 enp0s3 设置为桥接连接 bridge - br0 的从接口。
      • 然后重启网络服务,如systemctl restart NetworkManager,或者直接重新连接网络连接以应用更改。
  3. 在 virt - manager 中配置虚拟机使用桥接网络

    • 打开 virt - manager,创建或编辑虚拟机。
    • 在虚拟机的设置界面中,选择“网络”选项。
    • 在网络选择中,找到并选择之前在宿主机上创建的桥接接口(如 br0)。这样虚拟机的虚拟网卡就会连接到这个桥接网络,从而能够像物理机一样在局域网中通信。
  4. 测试虚拟机网络连接

    • 启动虚拟机后,在虚拟机内部可以通过ping命令测试与其他网络设备的连通性。例如,ping网关 IP 地址或外部网络的 IP 地址,来验证虚拟机是否成功接入网络。

需要注意的是,不同操作系统和网络环境下的桥接网络配置可能会有所不同。在进行桥接网络配置时,要确保宿主机的网络设置、虚拟机的网络设置以及整个网络环境中的防火墙、路由等设置相互匹配,以保证虚拟机可以正常地通过桥接网络进行通信。

















9️⃣ 参考 9

要在 virt-manager 中配置 桥接网络(Bridge 模式),需遵循「创建桥接接口→配置桥接网络→关联虚拟机」的核心流程。以下是分发行版详细步骤(以主流的 Ubuntu 20.04+/CentOS 7+/Fedora 30+ 为例),并包含常见问题解决。

一、前置条件

  1. 物理网卡支持桥接
    无线网卡(如 Wi-Fi)通常不支持桥接(底层硬件限制),需使用有线网卡(如 eth0enp0s3ens33 等)。可通过 ip addr 命令查看可用物理网卡名称。
  2. 安装必要工具
    • Ubuntu/Debian:sudo apt install bridge-utils(提供 brctl 工具)。
    • CentOS/RHEL/Fedora:sudo yum install bridge-utilssudo dnf install bridge-utils

二、创建并配置桥接接口

桥接接口的作用是将物理网卡与虚拟机网络连接,使虚拟机直接接入物理网络。以下分**Ubuntu(Netplan)CentOS(NetworkManager/传统网络)**两种场景说明。

1. Ubuntu 系统(推荐 Netplan 配置,适用于 20.04+)

Ubuntu 20.04 及以上默认使用 Netplan 管理网络,配置文件位于 /etc/netplan/ 目录(如 00-installer-config.yaml)。
步骤

  • 步骤 1:备份原配置
    sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
    
  • 步骤 2:编辑 Netplan 配置文件
    用文本编辑器(如 nano)打开配置文件,添加桥接接口 br0 的配置(示例):
    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:  # 替换为你的物理网卡名称(如 eth0、ens33)
          dhcp4: false  # 关闭物理网卡的 DHCP
          optional: true
      bridges:
        br0:  # 桥接接口名称(可自定义)
          dhcp4: true  # 桥接接口使用 DHCP(或配置静态 IP)
          # 若需静态 IP,替换为以下内容:
          # addresses: [192.168.1.100/24]  # 桥接接口 IP(与物理网卡同网段)
          # gateway4: 192.168.1.1  # 网关(物理网络网关)
          # nameservers:
          #   addresses: [8.8.8.8, 114.114.114.114]  # DNS
          interfaces: [enp0s3]  # 绑定到物理网卡 enp0s3
    
    • DHCP 模式:桥接接口通过 DHCP 获取 IP,虚拟机也会自动获取同网段 IP(推荐新手)。
    • 静态 IP 模式:需手动配置桥接接口的 IP、网关、DNS(适用于固定 IP 网络)。
  • 步骤 3:应用配置
    sudo netplan apply  # 立即生效
    
    验证桥接接口是否创建成功:
    ip addr show br0  # 应显示 br0 的 IP 信息
    brctl show  # 应显示 br0 绑定了物理网卡 enp0s3
    
2. CentOS/RHEL/Fedora 系统(推荐 NetworkManager 配置)

CentOS 7+ 默认使用 NetworkManager 管理网络,配置文件位于 /etc/sysconfig/network-scripts/ 目录(如 ifcfg-enp0s3ifcfg-br0)。
步骤

  • 步骤 1:备份原物理网卡配置
    sudo cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s3.bak  # 替换为你的物理网卡名称
    
  • 步骤 2:修改物理网卡配置
    编辑物理网卡配置文件(如 ifcfg-enp0s3),将其从独立网络接口改为桥接接口的成员:
    DEVICE=enp0s3  # 物理网卡名称
    TYPE=Ethernet
    BOOTPROTO=none  # 关闭 DHCP(由桥接接口管理)
    ONBOOT=yes
    BRIDGE=br0  # 指定绑定的桥接接口名称
    
  • 步骤 3:创建桥接接口配置文件
    新建桥接接口配置文件(如 ifcfg-br0):
    DEVICE=br0  # 桥接接口名称
    TYPE=Bridge
    BOOTPROTO=dhcp  # 桥接接口使用 DHCP(或配置静态 IP)
    # 若需静态 IP,替换为以下内容:
    # BOOTPROTO=static
    # IPADDR=192.168.1.100  # 桥接接口 IP(与物理网卡同网段)
    # NETMASK=255.255.255.0
    # GATEWAY=192.168.1.1
    # DNS1=8.8.8.8
    ONBOOT=yes
    DELAY=0  # 取消延迟启动
    
  • 步骤 4:重启网络服务
    sudo systemctl restart NetworkManager  # 重启 NetworkManager 使配置生效
    
    验证桥接接口是否创建成功:
    ip addr show br0  # 应显示 br0 的 IP 信息
    brctl show  # 应显示 br0 绑定了物理网卡 enp0s3
    

三、在 virt-manager 中关联桥接网络

完成桥接接口配置后,需将虚拟机的网络源设置为新建的桥接接口(如 br0)。
步骤

  1. 打开 virt-manager(图形化管理工具),连接到本地或远程 KVM 主机。
  2. 右键点击目标虚拟机,选择 Open(打开虚拟机详情)。
  3. 在左侧导航栏选择 NIC: Network Device(网络设备)。
  4. Network source(网络源)下拉菜单中,选择 Custom bridge interface(自定义桥接接口),并选择新建的桥接接口(如 br0)。
    !i.imgur.com/7XZJZ1L.png
  5. (可选)修改 Model(网络模型)为 virtio(性能更好的虚拟网卡驱动)。
  6. 点击 Apply(应用)保存配置,然后重启虚拟机(Reboot)使网络生效。

















🔟 参考 10

在virt-manager中配置桥接网络(Bridge模式)的步骤如下,适用于大多数Linux发行版(如Ubuntu/CentOS):


1. 安装必要工具

# Debian/Ubuntu
sudo apt install bridge-utils net-tools

# RHEL/CentOS
sudo yum install bridge-utils net-tools

2. 配置网桥接口

方法一:使用Netplan(Ubuntu 18.04+)
  1. 编辑Netplan配置文件(通常为/etc/netplan/01-netcfg.yaml):
    network:
      version: 2
      renderer: networkd
      ethernets:
        enp3s0:  # 替换为你的物理网卡名称(通过 `ip a` 查看)
          dhcp4: no
          optional: true
      bridges:
        br0:
          dhcp4: yes
          interfaces: [enp3s0]
          parameters:
            stp: false
            forward-delay: 0
    
  2. 应用配置:
    sudo netplan apply
    
方法二:传统配置(/etc/network/interfaces)
# 编辑文件
sudo nano /etc/network/interfaces

# 配置内容(示例):
auto br0
iface br0 inet dhcp
    bridge_ports enp3s0  # 替换为你的物理网卡
    bridge_stp off
    bridge_maxwait 0

3. 重启网络服务

# Ubuntu(传统方式)
sudo systemctl restart networking

# CentOS/RHEL
sudo systemctl restart NetworkManager

# 验证网桥状态
brctl show  # 或使用 `ip addr show br0`

4. 配置virt-manager使用桥接网络

  1. 启动virt-manager
    sudo virt-manager
    
  2. 虚拟机设置
    • 选择虚拟机 → 打开虚拟硬件详情。
    • 网络 → 选择“桥接设备” → 设备名称填写br0
    • 保存配置并启动虚拟机。

5. 验证网络

  • 虚拟机内:检查是否获得与主机同一网段的IP(如使用DHCP)。
  • 主机验证
    ping 虚拟机IP      # 测试连通性
    brctl showmacs br0 # 查看连接的MAC地址
    

常见问题

  1. 权限问题:确保用户属于libvirt组:
    sudo usermod -aG libvirt $USER
    
  2. 防火墙/SELinux:临时关闭测试或配置允许规则。
  3. 物理网卡未激活:确保物理接口(如enp3s0)已启用。

通过以上步骤,虚拟机将通过桥接网络直接接入物理网络,获得与物理设备同级的网络访问能力。

















以下是在 virt-manager 中配置桥接网络(Bridge 模式)的详细步骤,结合宿主机桥接创建和虚拟机网络设置,适用于主流 Linux 发行版(Ubuntu/Debian/RHEL/CentOS)。配置后虚拟机将获得与宿主机同网段的独立 IP,可直接被局域网访问。


🔧 一、宿主机桥接配置(关键前提)

需先在宿主机创建并激活桥接接口(如 br0),绑定物理网卡(如 eth0/enp0s3)。以下分发行版说明:

1. Ubuntu/Debian(通过 netplanNetworkManager

方法1:使用 netplan(推荐)
编辑 /etc/netplan/01-netcfg.yaml,示例配置:

network:
  version: 2
  renderer: networkd
  bridges:
    br0:
      dhcp4: yes  # 或静态IP:addresses: [192.168.1.100/24], gateway4: 192.168.1.1
      interfaces: [enp0s3]  # 物理网卡名
      parameters:
        stp: false
        forward-delay: 0

应用配置:

sudo netplan apply

方法2:使用 NetworkManager(图形化)

nm-connection-editor  # 打开网络连接编辑器
  • 删除原有物理网卡连接
  • 新建 Bridge 类型连接,命名为 br0
  • 添加物理网卡(如 enp0s3)作为桥接端口
  • 配置 IP(DHCP 或静态)并保存
2. RHEL/CentOS(编辑网卡配置文件)
# 物理网卡配置(如 eth0)
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0  
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0  # 关联到桥接接口

# 桥接接口配置
sudo vi /etc/sysconfig/network-scripts/ifcfg-br0  
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp  # 或 static + IPADDR/GATEWAY
ONBOOT=yes
DELAY=0
STP=off

重启网络服务:

sudo systemctl restart NetworkManager
验证宿主机桥接状态
ip addr show br0  # 查看 br0 是否分配 IP
brctl show        # 查看桥接绑定关系(需安装 bridge-utils)

⚠️ 注意:配置后宿主机通过 br0 上网,原物理网卡不再直接持有 IP。


🖥️ 二、在 virt-manager 中配置虚拟机桥接

  1. 打开 virt-manager

    virt-manager
    
  2. 修改虚拟机网络设置

    • 选择目标虚拟机 → 点击 "Open"

    • 进入 "Virtual Hardware" 标签 → 选择 "NIC"(网络设备)

    • "Network source" → 选择 "Bridge to LAN""Specify shared device name"

    • 在下方输入框填写桥接接口名(如 br0

    • 模型建议选 "virtio"(高性能虚拟化驱动)

    (示意图:Network source 选择 "Bridge" 并输入 br0)

  3. 保存并启动虚拟机

    • 点击 "Apply" → 重启虚拟机使配置生效



























































Linux创建网桥Bridge的方法有哪些?

在Linux系统中,创建网桥(Bridge)主要有以下几种方法,涵盖命令行临时配置和持久化配置:


方法1:使用 ip 命令(临时生效,重启失效)

# 创建网桥
sudo ip link add name br0 type bridge

# 启动网桥
sudo ip link set br0 up

# 将物理接口(如eth0)加入网桥
sudo ip link set eth0 master br0

# 配置网桥IP地址(可选)
sudo ip addr add 192.168.1.100/24 dev br0

方法2:使用传统 brctl 工具

# 安装工具(Debian/Ubuntu)
sudo apt install bridge-utils

# 创建网桥
sudo brctl addbr br0

# 添加接口到网桥
sudo brctl addif br0 eth0

# 启动网桥
sudo ip link set br0 up

方法3:通过配置文件持久化(不同发行版)

Debian/Ubuntu(/etc/network/interfaces
# 编辑配置文件
sudo nano /etc/network/interfaces

# 添加以下内容:
auto br0
iface br0 inet dhcp  # 或 static
    bridge_ports eth0
    # 静态IP示例:
    # address 192.168.1.100
    # netmask 255.255.255.0
    # gateway 192.168.1.1

重启网络服务:

sudo systemctl restart networking
RHEL/CentOS(/etc/sysconfig/network-scripts/
  1. 创建网桥配置文件 ifcfg-br0
    DEVICE=br0
    TYPE=Bridge
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    ONBOOT=yes
    BOOTPROTO=static
    
  2. 修改物理接口配置(如 ifcfg-eth0):
    DEVICE=eth0
    ONBOOT=yes
    BRIDGE=br0  # 关键!指向网桥
    

重启网络服务:

sudo systemctl restart network

方法4:使用 nmcli(NetworkManager)

# 创建网桥
sudo nmcli con add type bridge con-name br0 ifname br0

# 添加物理接口到网桥
sudo nmcli con add type bridge-slave con-name br0-eth0 ifname eth0 master br0

# 启动网桥
sudo nmcli con up br0

# 配置IP(可选,使用DHCP)
sudo nmcli con modify br0 ipv4.method auto

关键命令验证

# 查看网桥状态
brctl show        # 传统工具
bridge link       # iproute2 工具

# 检查网桥信息
ip link show br0
ip addr show br0

注意事项

  1. 接口解绑IP:物理接口(如 eth0)加入网桥前需移除原有IP配置,IP应配在网桥 br0 上。
  2. 服务重启:配置文件修改后需重启网络服务生效。
  3. 虚拟化支持:网桥常用于KVM/Docker等虚拟化技术,需确保内核模块加载:
    sudo modprobe bridge
    
  4. 防火墙:若需跨网桥通信,检查防火墙规则(如 iptables/nftables)。

根据需求选择合适的方法:临时调试用 ip 命令,持久化用配置文件或 nmcli



























如何用"iproute2"配置网桥bridge,并使其永久生效

在 Linux 中,使用 iproute2 工具创建网桥并使其永久生效,需要结合系统网络配置文件。以下是详细步骤:


一、临时创建网桥(重启失效)

# 创建网桥
sudo ip link add name br0 type bridge

# 启用网桥
sudo ip link set br0 up

# 添加物理接口到网桥(示例:eth0)
sudo ip link set eth0 master br0

# 配置网桥IP地址(可选)
sudo ip addr add 192.168.1.100/24 dev br0

二、永久生效配置(不同发行版)

1. Debian/Ubuntu(使用 /etc/network/interfaces
sudo nano /etc/network/interfaces
# 物理接口配置(不分配IP)
auto eth0
iface eth0 inet manual

# 网桥配置
auto br0
iface br0 inet static
    bridge_ports eth0    # 绑定物理接口
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8

应用配置:

sudo systemctl restart networking
2. RHEL/CentOS 7+(使用 ifcfg 文件)

(1) 创建网桥配置文件

sudo nano /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
BOOTPROTO=none

(2) 修改物理接口配置

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0  # 关键:指向网桥
BOOTPROTO=none

应用配置:

sudo systemctl restart network
3. 使用 netplan(Ubuntu 18.04+)
sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  bridges:
    br0:
      interfaces: [eth0]
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]

应用配置:

sudo netplan apply

三、关键验证命令

# 检查网桥状态
ip link show br0

# 查看网桥详细信息
bridge link show

# 验证IP配置
ip addr show br0

# 检查路由
ip route

四、注意事项

  1. 接口释放:物理接口(如 eth0)加入网桥前必须释放原有IP配置,否则会导致冲突
  2. 服务依赖
    • Debian:networking 服务
    • RHEL:network 服务
    • Ubuntu 18.04+:netplan apply
  3. 内核模块:确保加载网桥模块
    sudo modprobe bridge
    sudo sh -c 'echo "bridge" >> /etc/modules'  # 永久加载
    
  4. 防火墙:如需跨网桥通信,开放防火墙
    sudo iptables -I FORWARD -i br0 -j ACCEPT
    

提示:生产环境建议先在临时配置测试无误后,再写入配置文件。重启系统后使用 ip addrbridge link 验证配置是否生效。



























如何用"brctl"配置网桥bridge,并使其永久生效

使用 brctl 配置永久生效的网桥

brctl (bridge control) 是传统的 Linux 网桥管理工具,虽然在新系统中逐渐被 iproute2 替代,但在许多场景下仍在使用。以下是使用 brctl 创建网桥并使其永久生效的详细步骤:

1. 安装 bridge-utils

# Debian/Ubuntu
sudo apt update
sudo apt install bridge-utils -y

# RHEL/CentOS
sudo yum install bridge-utils -y

2. 临时创建网桥(重启失效)

# 创建网桥
sudo brctl addbr br0

# 添加物理接口到网桥(示例使用 eth0)
sudo brctl addif br0 eth0

# 启用网桥
sudo ip link set br0 up

# 配置IP地址(可选)
sudo ip addr add 192.168.1.100/24 dev br0

3. 永久生效配置(不同发行版)

3.1 Debian/Ubuntu(使用 /etc/network/interfaces)

sudo nano /etc/network/interfaces
# 物理接口配置(不分配IP)
auto eth0
iface eth0 inet manual
    up ip link set $IFACE up
    down ip link set $IFACE down

# 网桥配置
auto br0
iface br0 inet static
    bridge_ports eth0      # 绑定物理接口
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    bridge_stp off         # 禁用生成树协议
    bridge_fd 0           # 设置转发延迟为0
    bridge_maxwait 0       # 设置最大等待时间为0

应用配置:

sudo systemctl restart networking

3.2 RHEL/CentOS(使用 ifcfg 文件)

创建网桥配置文件:

sudo nano /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
BOOTPROTO=none
DELAY=0                    # 转发延迟
STP=off                    # 禁用生成树协议

修改物理接口配置:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0                 # 关键:指向网桥
BOOTPROTO=none

应用配置:

sudo systemctl restart network

3.3 使用 netplan(Ubuntu 18.04+)

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      interfaces: [eth0]
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8]
      parameters:
        stp: false         # 禁用STP
        forward-delay: 0   # 转发延迟

应用配置:

sudo netplan apply

4. 高级配置选项

4.1 启用 STP(生成树协议)

# 在 /etc/network/interfaces 中添加
bridge_stp on
bridge_fd 2

# 在 RHEL ifcfg-br0 中添加
STP=yes

4.2 设置网桥优先级

sudo brctl setbridgeprio br0 16384

4.3 添加多个接口到网桥

sudo brctl addif br0 eth1
sudo brctl addif br0 eth2

5. 验证配置

# 查看所有网桥
brctl show

# 输出示例:
# bridge name     bridge id               STP enabled     interfaces
# br0             8000.001122334455       no              eth0

# 查看网桥详细信息
brctl showstp br0

# 检查MAC地址表
brctl showmacs br0

# 查看网桥状态
ip link show br0

6. 故障排除

常见问题及解决方案:

  1. 接口未加入网桥

    • 检查物理接口配置中是否有 BRIDGE=br0 (RHEL) 或 bridge_ports (Debian)
    • 确保物理接口没有分配IP地址
  2. 网桥未启动

    sudo ip link set br0 up
    
  3. 网络连接问题

    # 检查路由表
    ip route
    
    # 检查ARP表
    ip neigh
    
  4. 配置未应用

    # 检查服务状态
    sudo systemctl status networking   # Debian
    sudo systemctl status network     # RHEL
    
    # 检查日志
    journalctl -xe
    

7. 移除网桥

临时移除:

sudo ip link set br0 down
sudo brctl delbr br0

永久移除:

  1. 删除相关配置文件
  2. 恢复物理接口的原始配置
  3. 重启网络服务

注意事项

  1. 接口释放:物理接口加入网桥前必须移除原有IP配置
  2. STP设置:在简单网络中可以禁用STP以提升性能
  3. 系统兼容性:较新的Linux发行版建议优先使用 iproute2
  4. 虚拟化支持:网桥常用于KVM、LXC等虚拟化技术
  5. 防火墙:确保防火墙允许网桥流量
    sudo iptables -A FORWARD -i br0 -j ACCEPT
    

通过以上步骤,您可以使用 brctl 创建并永久配置Linux网桥。配置完成后,建议重启系统验证配置是否在启动时自动生效。



























如何用"NetworkManager"配置网桥bridge,并使其永久生效

使用NetworkManager(通过nmcli工具)配置网桥(Bridge)并永久生效,是Linux网络管理的高效方案,尤其适用于现代发行版(如RHEL/CentOS 7+、Ubuntu 18.04+)。以下是详细步骤及注意事项:


⚙️ 一、确保NetworkManager接管网络

关键前提:若系统由其他工具管理网络(如netplanifupdown),需先配置NetworkManager接管:

  1. Ubuntu(使用netplan)
    sudo nano /etc/netplan/00-installer-config.yaml  # 文件名可能不同
    
    添加以下内容并保存:
    network:
      version: 2
      renderer: NetworkManager  # 指定NetworkManager接管
    
    应用配置:
    sudo netplan apply
    
  2. 传统ifupdown系统(如Debian/Ubuntu旧版)
    sudo nano /etc/NetworkManager/NetworkManager.conf
    
    修改为:
    [main]
    plugins=ifupdown,keyfile
    [ifupdown]
    managed=true  # 允许管理现有接口
    
    重启服务:
    sudo systemctl restart NetworkManager
    

🛠️ 二、使用nmcli配置网桥

步骤1:创建网桥并添加物理接口
# 创建名为br0的网桥
sudo nmcli con add type bridge ifname br0 con-name br0

# 将物理接口(如eth0)添加为网桥从属
sudo nmcli con add type bridge-slave ifname eth0 master br0

# 激活网桥
sudo nmcli con up br0

注意

  • 物理接口(如eth0)原有IP配置需移除,否则冲突。
  • 若接口已有连接(如"有线连接1"),需先关闭:
    sudo nmcli con down "Wired connection 1"  # 根据实际名称调整
    
步骤2:配置IP地址(可选)
  • 静态IP
    sudo nmcli con modify br0 ipv4.method manual \
        ipv4.addresses 192.168.1.100/24 \
        ipv4.gateway 192.168.1.1 \
        ipv4.dns "8.8.8.8 8.8.4.4"
    
  • 动态IP(DHCP)
    sudo nmcli con modify br0 ipv4.method auto
    
步骤3:高级配置(按需调整)
  • 禁用STP(生成树协议)
    sudo nmcli con modify br0 bridge.stp no
    
  • 设置转发延迟
    sudo nmcli con modify br0 bridge.forward-delay 0  # 设为0提升性能
    

🔍 三、验证配置

# 查看网桥状态
nmcli con show br0
bridge link show  # 检查从属接口

# 检查IP地址
ip addr show br0

# 查看网桥详细信息(包括STP状态)
nmcli -f bridge con show br0

⚠️ 四、永久生效关键点

  1. 配置自动存储
    nmcli命令修改会自动保存/etc/NetworkManager/system-connections/br0.nmconnection,重启后自动加载。
  2. 重启验证
    sudo systemctl reboot
    # 重启后检查
    nmcli con show | grep br0  # 应显示ACTIVE
    

🔧 五、常见问题解决

  • 物理接口未加入网桥
    检查物理接口是否被其他连接占用(nmcli con show),关闭原有连接后再激活网桥。
  • 网桥未激活
    手动启动:sudo nmcli con up br0
  • KVM虚拟化支持
    将虚拟机网络模式设为桥接,参考以下virsh配置:
    <!-- br0.xml -->
    <network>
      <name>br0</name>
      <forward mode="bridge"/>
      <bridge name="br0"/>
    </network>
    
    加载配置:
    virsh net-define br0.xml
    virsh net-start br0
    virsh net-autostart br0
    

💎 总结

  • 核心命令nmcli con add type bridge + nmcli con add type bridge-slave
  • 永久生效依赖:NetworkManager接管网络配置,且勿手动修改底层文件(如/etc/network/interfaces)。
  • 适用场景:桌面环境、KVM虚拟化、容器网络等需持久化网桥的场景。

通过nmcli配置的网桥兼具灵活性与持久性,避免跨发行版配置差异问题。若需更复杂策略(如VLAN过滤),可结合nmclibridge.vlan-filtering参数扩展。



























如何用"systemd-networkd"配置网桥bridge,并使其永久生效

使用 systemd-networkd 配置永久网桥(Bridge)是 Linux 中高效且标准化的方案,尤其适用于 Arch Linux、Debian 及 CentOS/RHEL 8+ 等使用 systemd 的发行版。以下是详细步骤及注意事项:


🔧 一、配置流程

1. 创建网桥设备定义文件

创建 /etc/systemd/network/br0.netdev 文件,定义网桥名称和类型:

sudo nano /etc/systemd/network/br0.netdev
[NetDev]
Name=br0           # 网桥名称
Kind=bridge         # 设备类型为网桥
# 可选高级参数(按需添加)
MACAddress=00:11:22:33:44:55  # 指定MAC地址
STP=on              # 启用生成树协议(防环)
  • 关键项Kind=bridge 必须指定。
2. 配置网桥网络参数

创建 /etc/systemd/network/br0.network 文件,设置 IP 地址/DNS 等:

sudo nano /etc/systemd/network/br0.network
[Match]
Name=br0           # 匹配网桥设备名

[Network]
Address=192.168.1.100/24  # 静态IP
Gateway=192.168.1.1        # 网关
DNS=8.8.8.8                # DNS服务器
# 或使用 DHCP
# DHCP=ipv4
  • 注意:IP 必须配置在网桥 br0 而非物理接口。
3. 绑定物理接口到网桥

修改物理接口(如 eth0)的配置文件,移除原 IP 并关联网桥:

sudo nano /etc/systemd/network/eth0.network
[Match]
Name=eth0          # 物理接口名

[Network]
Bridge=br0         # 绑定到网桥 br0
# 删除所有 IP/DHCP 配置!
  • 重要:物理接口不再配置独立 IP,否则冲突。
4. 重启服务生效
sudo systemctl restart systemd-networkd  # 应用配置
ip link show br0                        # 验证网桥状态
bridge link                            # 检查绑定的接口

⚙️ 二、高级配置

1. 多接口绑定

将多个接口(如 eth1, eth2)加入网桥:

# /etc/systemd/network/eth1.network
[Match]
Name=eth1
[Network]
Bridge=br0

# /etc/systemd/network/eth2.network
[Match]
Name=eth2
[Network]
Bridge=br0
2. STP 与转发延迟优化

br0.netdev 中调整防环与性能参数:

[NetDev]
Name=br0
Kind=bridge
STP=on              # 启用生成树协议
ForwardDelaySec=2   # 转发延迟(秒),默认15秒,建议设为2-4
3. VLAN 支持

若需在网桥上支持 VLAN,需创建 VLAN 子接口:

# 创建 VLAN 10 的设备定义
sudo nano /etc/systemd/network/br0.10.netdev
[NetDev]
Name=br0.10
Kind=vlan
[VLAN]
Id=10               # VLAN ID

关联到网桥:

# /etc/systemd/network/br0.10.network
[Match]
Name=br0.10
[Network]
Bridge=br0          # 将 VLAN 接口绑定到网桥

🔍 三、永久生效验证

  1. 重启系统
    sudo reboot
    ip addr show br0  # 重启后检查 IP 配置
    
  2. 开机自启
    systemd-networkd 服务默认随系统启动,无需额外操作。

🛠️ 四、故障排除

常见问题
  1. 网桥未启动

    sudo networkctl up br0          # 手动启动网桥
    sudo journalctl -u systemd-networkd # 查看日志
    
  2. 物理接口未绑定

    • 检查物理接口配置是否包含 Bridge=br0
    • 确认物理接口无独立 IP 配置。
  3. 配置更新后未生效
    删除旧网桥并重启服务:

    sudo ip link set down br0       # 关闭网桥
    sudo ip link del dev br0        # 删除设备
    sudo systemctl restart systemd-networkd # 重新加载
    

💎 总结

  • 核心配置.netdev(定义网桥) + .network(绑定接口/IP)
  • 永久生效:依赖 systemd-networkd 服务,配置存储在 /etc/systemd/network/
  • ⚠️ 避坑点
    • 物理接口必须释放 IP,仅网桥持有 IP
    • 复杂网络(如 KVM 虚拟化)需结合 libvirt 配置。

此方案适用于无图形界面的服务器环境,兼具轻量与稳定性。若需动态管理(如桌面环境),可改用 NetworkManager(参考此前回复)。