如何设置Linux网络桥接 brctl桥接管理工具使用

发布时间 - 2025-08-07 00:00:00    点击率:

首先安装brctl工具,然后创建网桥br0并添加物理接口eth0,接着将ip配置从eth0迁移到br0并启用接口,最后通过brctl命令管理网桥状态;1. 使用apt或yum安装bridge-utils;2. 执行sudo brctl addbr br0创建网桥;3. 使用sudo brctl addif br0 eth0将接口加入网桥;4. 清除eth0的ip并为br0配置ip;5. 启用eth0和br0接口;6. 通过brctl show查看网桥信息;7. 配置netplan或network-scripts实现开机自动生效;8. 在kvm或docker等场景中应用桥接网络;9. 注意关闭stp可提速但需防环路,推荐后续使用ip和bridge命令替代brctl,操作完成后网桥可正常工作。

在 Linux 中,网络桥接(Bridge)是一种将多个网络接口连接在一起,使它们像同一个物理交换机一样工作的技术。常用于虚拟化环境中,让虚拟机与宿主机共享网络或直接接入物理网络。

brctl
是传统 Linux 系统中用于管理网桥的命令行工具,属于
bridge-utils
软件包。

下面详细介绍如何使用

brctl
设置和管理 Linux 网络桥接。


一、安装 brctl 工具

brctl
不是默认安装的,需要手动安装
bridge-utils
包。

Debian/Ubuntu 系统:

sudo apt update
sudo apt install bridge-utils

CentOS/RHEL/Rocky Linux:

sudo yum install bridge-utils
# 或者在较新版本中使用 dnf
sudo dnf install bridge-utils

安装完成后,即可使用

brctl
命令。


二、创建和配置网桥

1. 创建一个网桥(如 br0)

sudo brctl addbr br0

这会创建一个名为

br0
的虚拟网桥设备。

2. 将物理网卡添加到网桥(如 eth0)

⚠️ 注意:如果你通过 SSH 连接服务器,直接绑定 eth0 可能导致网络中断!建议在本地操作或使用备用接口。
sudo brctl addif br0 eth0

这会将

eth0
接口加入到
br0
桥中,此后该接口的数据包将由网桥处理。

3. 配置 IP 地址(从物理接口转移到网桥)

由于网桥接管了网络通信,原来的物理接口(如 eth0)不再需要 IP 地址,应将 IP 配置到

br0
上。

# 清除原接口 IP
sudo ip addr flush dev eth0

# 为网桥分配 IP(假设使用 DHCP)
sudo dhclient br0

# 或者静态设置 IP
sudo ip addr add 192.168.1.100/24 dev br0
sudo ip route add default via 192.168.1.1

4. 启用网桥和接口

确保所有接口处于 UP 状态:

sudo ip link set eth0 up
sudo ip link set br0 up

三、常用 brctl 命令说明

命令 作用
@@######@@ 创建一个新网桥
@@######@@ 删除指定网桥
@@######@@ 将接口添加到网桥
@@######@@ 从网桥中删除接口
@@######@@ 显示当前所有网桥及其接口
@@######@@ 显示网桥的生成树(STP)信息
@@######@@ 设置网桥转发延迟(秒)
@@######@@ 启用或关闭 STP(生成树协议)

示例:查看当前网桥状态

brctl addbr 

输出示例:

brctl delbr 

四、持久化配置(开机自动生效)

上面的操作是临时的,重启后会失效。要实现持久化,需根据发行版配置网络脚本。

Ubuntu(使用 netplan,较新版本)

编辑

brctl addif  
文件,例如:

brctl delif  

应用配置:

brctl show

CentOS/RHEL(使用传统 network-scripts)

编辑

brctl showstp 

brctl setfd  

修改

brctl stp  on/off

brctl show

重启网络服务:

bridge name     bridge id               STP enabled     interfaces
br0             8000.001122334455       yes             eth0

五、典型应用场景

  • KVM/QEMU 虚拟化:为虚拟机提供桥接网络,使其获得局域网独立 IP。
  • Docker 自定义桥接(虽然 Docker 通常用
    /etc/netplan/*.yaml
    ,但可自定义 bridge)。
  • 多容器或虚拟机共享宿主机网络接口

六、注意事项

  • 添加接口到网桥后,原接口的 IP 应移除,由网桥承担三层功能。
  • 开启 STP 可防止环路,但在简单环境中可关闭以加快连接速度:
    network:
      version: 2
      renderer: networkd
      bridges:
        br0:
          dhcp4: true
          interfaces:
            - eth0
  • 某些现代系统推荐使用
    sudo netplan apply
    /etc/sysconfig/network-scripts/ifcfg-br0
    命令替代
    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=dhcp
    ONBOOT=yes
    DELAY=0
    (如
    /etc/sysconfig/network-scripts/ifcfg-eth0
    ),但
    DEVICE=eth0
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    BRIDGE=br0
    依然广泛兼容。

基本上就这些。通过

sudo systemctl restart network
创建和管理网桥并不复杂,关键在于理解“桥接是二层操作”,IP 应配置在网桥设备上,而不是物理接口。实际使用中建议结合自动化脚本或配置管理工具进行部署。

docker0
sudo brctl stp br0 off
ip
bridge
brctl
ip link add name br0 type bridge
brctl
brctl


# linux  # centos  # docker  # 工具  # 接口  # Interface  # ubuntu  # ssh  # debian  # 自动化  # 虚拟化  # 网桥  # 桥接  # 创建一个  # 自定义  # 重启  # 这会  # 新版本  # 如果你  # 是一种  # 多个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 原生JS实现图片轮播切换效果  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  iOS发送验证码倒计时应用  Laravel怎么为数据库表字段添加索引以优化查询  如何在建站之星网店版论坛获取技术支持?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何在IIS7上新建站点并设置安全权限?  网站页面设计需要考虑到这些问题  高防服务器租用如何选择配置与防御等级?  如何在阿里云域名上完成建站全流程?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  微信小程序 配置文件详细介绍  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  如何实现javascript表单验证_正则表达式有哪些实用技巧  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel怎么上传文件_Laravel图片上传及存储配置  黑客如何通过漏洞一步步攻陷网站服务器?  java获取注册ip实例  太平洋网站制作公司,网络用语太平洋是什么意思?  Laravel如何使用Livewire构建动态组件?(入门代码)  如何在建站之星绑定自定义域名?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  佛山企业网站制作公司有哪些,沟通100网上服务官网?  大连网站制作公司哪家好一点,大连买房网站哪个好?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Bootstrap整体框架之JavaScript插件架构  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  如何快速搭建安全的FTP站点?  javascript日期怎么处理_如何格式化输出  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何创建自定义Facades?(详细步骤)  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  JavaScript如何实现音频处理_Web Audio API如何工作?  如何在企业微信快速生成手机电脑官网?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  PHP正则匹配日期和时间(时间戳转换)的实例代码  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel Docker环境搭建教程_Laravel Sail使用指南  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  网站制作壁纸教程视频,电脑壁纸网站?