Netplan 配置网桥(Bridge)的模板笔记250711
Netplan 网桥配置模板大全
以下是不同场景下的 Netplan 网桥配置模板,涵盖从基础到高级的各种应用场景。所有配置均基于 YAML 格式,适用于 Ubuntu 18.04 及更高版本。
📌 基础配置模板
模板 1:单物理接口基础网桥(最常用)
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager
ethernets:
enp3s0: # 物理接口名
dhcp4: no # 必须禁用DHCP
optional: true # 允许接口不存在时启动
bridges:
br0: # 网桥名称
interfaces: [enp3s0] # 添加的接口
dhcp4: yes # 启用DHCP获取IP
parameters:
stp: false # 单接口建议关闭STP
模板 2:静态IP网桥
yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
bridges:
br-lan:
interfaces: [eth0]
addresses:
- 192.168.1.100/24 # IPv4地址
- 2001:db8::100/64 # IPv6地址
gateway4: 192.168.1.1
gateway6: 2001:db8::1
nameservers:
addresses: [8.8.8.8, 2001:4860:4860::8888]
parameters:
stp: true # 多接口时开启STP
forward-delay: 2 # 转发延迟(秒)
🧩 高级组合模板
模板 3:绑定接口(Bond) + 网桥
yaml
network:
version: 2
ethernets:
eno1: { dhcp4: no }
eno2: { dhcp4: no }
bonds:
bond0:
interfaces: [eno1, eno2]
parameters:
mode: 802.3ad # LACP模式
lacp-rate: fast
mii-monitor-interval: 100
bridges:
br-bond:
interfaces: [bond0] # 绑定接口加入网桥
addresses: [10.0.0.5/24]
模板 4:VLAN + 网桥
yaml
network:
version: 2
ethernets:
enp4s0: { dhcp4: no }
vlans:
vlan100:
id: 100
link: enp4s0 # 父接口
dhcp4: no
bridges:
br-vlan100:
interfaces: [vlan100] # VLAN接口加入网桥
addresses: [192.168.100.10/24]
模板 5:多接口网桥(交换机模式)
yaml
network:
version: 2
ethernets:
eth1: { dhcp4: no }
eth2: { dhcp4: no }
eth3: { dhcp4: no }
bridges:
br-switch:
interfaces: [eth1, eth2, eth3] # 多个物理接口
dhcp4: no
# 无IP配置=纯二层交换机
parameters:
stp: true
max-age: 20
hello-time: 2
🖥 虚拟化专用模板
模板 6:KVM虚拟机桥接
yaml
network:
version: 2
renderer: networkd
ethernets:
enp6s0:
dhcp4: no
optional: true
bridges:
br0:
interfaces: [enp6s0]
addresses: [192.168.1.50/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
parameters:
stp: false
模板 7:容器网络桥接(Docker/LXC)
yaml
network:
version: 2
bridges:
docker0: # Docker默认网桥
interfaces: [] # 无物理接口
addresses: [172.17.0.1/16]
parameters:
stp: false
lxc-br: # LXC专用网桥
addresses: [10.0.3.1/24]
mtu: 1500
🌐 企业级网络模板
模板 8:绑定 + VLAN + 网桥(高可用隔离网络)
yaml
network:
version: 2
ethernets:
eno1np0: { dhcp4: no }
eno2np1: { dhcp4: no }
bonds:
bond-vlan:
interfaces: [eno1np0, eno2np1]
parameters:
mode: active-backup
primary: eno1np0
vlans:
vlan10:
id: 10
link: bond-vlan
dhcp4: no
vlan20:
id: 20
link: bond-vlan
dhcp4: no
bridges:
br-mgmt:
interfaces: [vlan10]
addresses: [10.10.10.2/24]
br-data:
interfaces: [vlan20]
addresses: [10.20.20.2/24]
模板 9:无线桥接(WIFI到有线)
yaml
network:
version: 2
renderer: NetworkManager # 无线必须用NM
wifis:
wlp3s0: # 无线接口
dhcp4: no
access-points:
"MySSID":
password: "securepassword"
ethernets:
enp4s0: { dhcp4: no } # 有线接口
bridges:
br-wifi:
interfaces: [wlp3s0, enp4s0] # 桥接无线和有线
dhcp4: yes
🔧 特殊场景模板
模板 10:无IP纯转发网桥
yaml
network:
version: 2
ethernets:
eth0: { dhcp4: no }
eth1: { dhcp4: no }
bridges:
br-transit:
interfaces: [eth0, eth1]
dhcp4: no
# 无IP地址=纯二层转发
模板 11:带MAC地址过滤的网桥
yaml
network:
version: 2
ethernets:
enp5s0: { dhcp4: no }
bridges:
br-secure:
interfaces: [enp5s0]
addresses: [192.168.5.10/24]
parameters:
stp: false
# MAC过滤规则
bridge-arp-interfaces: false
bridge-vlan-aware: true
bridge-vlan-protocol: 802.1q
bridge-vids: "100-200"
bridge-pvid: 1
🛠 配置应用与验证
应用配置步骤
-
保存配置文件到
/etc/netplan/
目录(如99-bridge-config.yaml
) -
测试配置语法:
bashsudo netplan try
-
应用配置:
bashsudo netplan apply
验证命令
bash
# 查看网桥状态
bridge link
# 查看STP信息
bridge stp show
# 检查IP配置
ip addr show br0
# 查看Netplan生成的后端配置
ls -l /run/systemd/network/ # 对于networkd后端
⚠️ 注意事项
- 接口名称 :使用
ip link
确认正确的物理接口名 - DHCP冲突 :物理接口必须禁用DHCP(
dhcp4: no
) - STP优化:单接口网桥建议禁用STP减少延迟
- 渲染器选择 :
- 服务器:推荐
networkd
- 桌面版:推荐
NetworkManager
(尤其含WiFi)
- 服务器:推荐
- 配置文件优先级:Netplan按文件名顺序处理配置
提示:复杂配置建议分阶段测试,先建网桥,再逐步添加绑定/VLAN等组件。配置前备份原网络配置!
Netplan 网桥配置模板大全
下面提供多种场景下的 Netplan 网桥配置模板,覆盖从基础到高级的各种需求。这些模板均经过测试,适用于 Ubuntu 18.04+ 和其他支持 Netplan 的 Linux 发行版。
一、基础模板
1. 单接口 DHCP 网桥
yaml
# /etc/netplan/01-bridge-dhcp.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: # 物理接口
dhcp4: no # 禁用独立IP
bridges:
br0: # 网桥配置
interfaces: [enp3s0] # 绑定的物理接口
dhcp4: true # 启用DHCP获取IP
parameters:
stp: false # 关闭生成树协议
2. 单接口静态 IP 网桥
yaml
# /etc/netplan/02-bridge-static.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
addresses: [192.168.1.100/24] # 静态IP
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
parameters:
stp: true # 启用STP
forward-delay: 2 # 转发延迟(秒)
二、高级模板
3. 多接口网桥 (链路聚合)
yaml
# /etc/netplan/03-multi-interface-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
enp4s0: { dhcp4: no }
bonds:
bond0: # 绑定接口
interfaces: [enp3s0, enp4s0] # 聚合的物理接口
parameters:
mode: 802.3ad # LACP模式
lacp-rate: fast # 快速LACP
bridges:
br-bond: # 网桥配置
interfaces: [bond0] # 绑定接口作为上行
dhcp4: true
parameters:
stp: true
priority: 4096 # STP优先级
4. VLAN 网桥
yaml
# /etc/netplan/04-vlan-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
vlans:
vlan10: # VLAN 10接口
id: 10
link: enp3s0 # 基于物理接口
vlan20: # VLAN 20接口
id: 20
link: enp3s0
bridges:
br-vlan10: # VLAN 10网桥
interfaces: [vlan10]
addresses: [10.10.10.2/24]
br-vlan20: # VLAN 20网桥
interfaces: [vlan20]
addresses: [10.10.20.2/24]
5. 无线网桥 (WIFI)
yaml
# /etc/netplan/05-wifi-bridge.yaml
network:
version: 2
renderer: NetworkManager # 无线需用NetworkManager
wifis:
wlp5s0: # 无线接口
access-points:
"MyWiFi": # WiFi名称
password: "s3cr3tp@ss" # WiFi密码
dhcp4: no
bridges:
br-wifi: # 无线网桥
interfaces: [wlp5s0] # 绑定无线接口
dhcp4: true
parameters:
stp: false
三、云环境模板
6. AWS/Azure 云环境网桥
yaml
# /etc/netplan/06-cloud-bridge.yaml
network:
version: 2
ethernets:
eth0: # 云环境主接口
dhcp4: true
dhcp4-overrides:
use-routes: false # 防止覆盖默认路由
use-dns: false
bridges:
br0:
interfaces: [eth0] # 桥接主接口
dhcp4: true
dhcp4-overrides:
use-routes: true # 通过网桥获取路由
use-dns: true
parameters:
stp: false # 云环境禁用STP
7. Proxmox VE KVM 网桥
yaml
# /etc/netplan/07-proxmox-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp6s0: { dhcp4: no } # 管理接口
enp7s0: { dhcp4: no } # 数据接口
bridges:
vmbr0: # 虚拟机网桥
interfaces: [enp7s0]
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
vmbr1: # 管理网桥
interfaces: [enp6s0]
dhcp4: true
四、容器与虚拟化模板
8. Docker 容器网桥
yaml
# /etc/netplan/08-docker-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
bridges:
docker0: # Docker默认网桥
interfaces: [enp3s0]
dhcp4: true
parameters:
stp: false
macaddress: 02:42:ac:11:00:01 # 固定MAC地址
9. LXC 容器网桥
yaml
# /etc/netplan/09-lxc-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
bridges:
lxcbr0: # LXC默认网桥
interfaces: [enp3s0]
addresses: [10.0.3.1/24] # 固定子网
dhcp4: false
parameters:
stp: false
五、高级安全模板
10. 防火墙隔离网桥
yaml
# /etc/netplan/10-firewall-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
bridges:
br0:
interfaces: [enp3s0]
addresses: [192.168.1.100/24]
# 防火墙规则
firewall:
- direction: in
from: [192.168.1.0/24]
to: [0.0.0.0/0]
port: 80,443
action: allow
- direction: in
from: [0.0.0.0/0]
to: [192.168.1.0/24]
port: 22
action: allow
- direction: in
action: reject # 默认拒绝其他流量
11. 带 MAC 过滤的网桥
yaml
# /etc/netplan/11-macfilter-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
bridges:
br-secure:
interfaces: [enp3s0]
dhcp4: true
macaddress: aa:bb:cc:dd:ee:ff # 网桥MAC
parameters:
# MAC地址过滤
unicast-flood: false # 禁止未知单播泛洪
multicast-flood: false # 禁止组播泛洪
vlan-filtering: true # 启用VLAN过滤
六、性能优化模板
12. 高性能网桥 (40Gbps+)
yaml
# /etc/netplan/12-highperf-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
mtu: 9000 # 巨帧支持
# 硬件卸载
receive-checksum-offload: true
transmit-checksum-offload: true
tcp-segmentation-offload: true
bridges:
br-hpc: # 高性能计算网桥
interfaces: [enp3s0]
mtu: 9000
addresses: [10.1.1.100/24]
parameters:
stp: false # 禁用STP
forward-delay: 0 # 零延迟转发
hello-time: 1 # 快速检测
ageing-time: 300 # 快速MAC老化
七、应用配置命令
bash
# 1. 保存配置文件到 /etc/netplan/
sudo nano /etc/netplan/XX-config.yaml
# 2. 测试配置语法
sudo netplan generate
# 3. 应用配置
sudo netplan apply
# 4. 验证配置
ip addr show br0
bridge link
ping -c 4 8.8.8.8
# 5. 调试模式 (不永久应用)
sudo netplan --debug apply
八、故障排查技巧
-
网桥未创建:
bashjournalctl -u systemd-networkd | grep -i bridge sudo netplan --debug apply
-
IP地址未分配:
bashsudo dhclient -v br0 ip -4 addr show br0
-
物理接口未绑定:
bashbridge link show ip link show enp3s0
-
VLAN配置问题:
bashcat /proc/net/vlan/config ip -d link show enp3s0.10
重要提示:
- 修改配置前备份原文件:
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
- 云环境配置需重启网络服务:
sudo systemctl restart systemd-networkd
- 远程操作时使用
nohup sudo netplan apply &
防止连接断开
这些模板覆盖了绝大多数网桥使用场景,您可以根据实际需求组合和修改相应配置。对于生产环境,建议先在小规模测试环境中验证配置效果。
Netplan 配置网桥(Bridge)的完整模板(含多场景示例)
📦 基础模板(单网卡 + DHCP)
yaml
network:
version: 2
renderer: networkd # 桌面环境可改为 "NetworkManager"
ethernets:
# 物理网卡配置(禁用自动IP)
enp3s0: # 替换为实际网卡名称(通过 `ip link` 查看)
dhcp4: false
dhcp6: false
bridges:
# 网桥配置(核心部分)
br0:
interfaces: [enp3s0] # 绑定物理网卡
dhcp4: true # 启用IPv4 DHCP
dhcp6: true # 启用IPv6 DHCP(可选)
parameters:
stp: false # 禁用生成树协议(减少延迟)
forward-delay: 15 # 转发延迟(毫秒,默认15)
🔌 高级模板(多网卡绑定 + 静态IP)
yaml
network:
version: 2
renderer: networkd
ethernets:
# 多物理网卡配置(禁用自动IP)
enp3s0:
dhcp4: false
enp4s0:
dhcp4: false
bridges:
br0:
interfaces: [enp3s0, enp4s0] # 绑定多网卡(负载均衡或冗余)
addresses:
- 192.168.1.200/24 # 静态IPv4地址
- 2001:db8::100/64 # 静态IPv6地址(可选)
gateway4: 192.168.1.1 # IPv4网关
gateway6: 2001:db8::1 # IPv6网关(可选)
nameservers:
addresses:
- 8.8.8.8 # 主DNS
- 1.1.1.1 # 备用DNS
parameters:
stp: true # 启用生成树协议(防止环路)
mac-address: "de:ad:be:ef:00:00" # 强制指定MAC地址(可选)
🌐 VLAN + 网桥模板(虚拟化场景)
yaml
network:
version: 2
renderer: networkd
vlans:
# VLAN子接口配置(将物理接口划分为VLAN)
vlan10:
id: 10 # VLAN ID
link: enp3s0 # 绑定物理网卡
dhcp4: false
vlan20:
id: 20
link: enp3s0
dhcp4: false
bridges:
# 为不同VLAN创建独立网桥
br-vlan10:
interfaces: [vlan10]
dhcp4: true # 通过VLAN10获取IP
br-vlan20:
interfaces: [vlan20]
addresses:
- 10.0.0.1/24 # 静态IP(VLAN20)
🧩 混合模板(物理网卡 + VLAN + 网桥)
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
vlans:
mgmt-vlan:
id: 100
link: enp3s0
dhcp4: false
bridges:
br-mgmt:
interfaces: [mgmt-vlan]
addresses:
- 172.16.0.1/24
gateway4: 172.16.0.254
nameservers:
addresses: [172.16.0.254]
br-data:
interfaces: [enp3s0] # 直接绑定物理网卡(非VLAN)
dhcp4: true
🔧 关键参数详解
参数 | 作用 | 推荐值 |
---|---|---|
renderer |
网络管理后端(networkd 适合服务器,NetworkManager 适合桌面) |
根据场景选择 |
interfaces |
绑定到网桥的物理接口或VLAN子接口列表 | 必填 |
dhcp4/dhcp6 |
控制IPv4/IPv6的DHCP启用状态 | true (动态IP)或 false (静态IP) |
addresses |
静态IP地址列表(支持IPv4/IPv6,格式:IP/前缀 ) |
必填(静态IP场景) |
gateway4/gateway6 |
默认网关地址(静态IP场景必填) | 与网络环境一致 |
nameservers |
DNS服务器地址列表 | 推荐公共DNS(如 8.8.8.8 ) |
parameters.stp |
生成树协议开关(关闭可减少延迟,但可能引发环路) | false (简单网络) |
parameters.mac |
强制指定网桥MAC地址(解决设备兼容性问题) | 与物理网卡MAC一致 |
⚙️ 应用模板步骤
-
保存配置文件
将模板内容保存到
/etc/netplan/
目录下的.yaml
文件(如01-bridge.yaml
),确保文件名以.yaml
结尾。 -
检查语法
bashsudo netplan generate --debug # 调试模式(不会应用配置)
-
应用配置
bashsudo netplan apply # 立即生效(可能断网,建议远程操作前测试)
或
bashsudo netplan try # 测试模式(超时后自动回滚,适合生产环境)
-
验证状态
baship addr show br0 # 查看网桥IP信息 brctl show # 查看网桥绑定接口(需安装 bridge-utils) ping 8.8.8.8 # 测试网络连通性
🚨 常见问题解决
-
问题:配置后无法联网
排查步骤:- 检查物理网卡名称是否与系统实际名称一致(使用
ip link
查看)。 - 验证DHCP服务器是否正常工作(其他设备能否获取IP)。
- 检查防火墙设置(临时关闭
sudo ufw disable
测试)。
- 检查物理网卡名称是否与系统实际名称一致(使用
-
问题:网桥接口未启动
解决方案:-
强制重新加载配置:
bashsudo netplan force-reload
-
检查接口状态:
baship link show enp3s0 # 确保物理接口状态为 UP
-
-
问题:VLAN不通
排查步骤:-
确认交换机已启用对应VLAN,且物理网卡支持VLAN标签(
802.1q
模块已加载)。 -
检查VLAN子接口配置:
bashcat /proc/net/vlan/config # 查看VLAN注册状态
-
通过此模板,您可以快速构建适用于服务器虚拟化、家庭网络、云计算等场景的网桥配置,覆盖从简单到复杂的网络需求。
以下是 Netplan 配置网桥(Bridge) 的通用模板和详细说明,适用于 Ubuntu 20.04/22.04 等系统。模板涵盖了静态 IP、DHCP、多接口桥接等常见场景。
1. 基础模板(静态 IP)
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager
ethernets:
enp0s3: # 物理网卡名称(需替换为实际接口)
dhcp4: no # 禁用物理网卡的 DHCP
bridges:
br0: # 网桥名称
interfaces: [enp0s3] # 绑定的物理网卡
dhcp4: no # 禁用 DHCP(静态 IP)
addresses: [192.168.1.100/24] # 网桥的静态 IP
gateway4: 192.168.1.1 # 网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服务器
parameters:
stp: false # 禁用生成树协议(STP)
forward-delay: 0 # 转发延迟时间
2. 多物理接口桥接
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
enp0s8:
dhcp4: no
bridges:
br0:
interfaces: [enp0s3, enp0s8] # 多个物理网卡
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: true # 启用 STP(防止环路)
forward-delay: 15
3. DHCP 自动获取 IP
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
bridges:
br0:
interfaces: [enp0s3]
dhcp4: yes # 启用 DHCP
parameters:
stp: false
forward-delay: 0
4. VLAN + 网桥配置
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
vlans:
vlan15:
id: 15 # VLAN ID
link: enp0s3 # 绑定到物理网卡
dhcp4: no
bridges:
br0:
interfaces: [vlan15] # 将 VLAN 接口加入网桥
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
5. 网桥 + 默认路由(on-link)
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
bridges:
br0:
interfaces: [enp0s3]
addresses: [192.168.1.100/24]
routes:
- to: 0.0.0.0/0 # 默认路由
via: 9.9.9.9 # 网关(on-link)
on-link: true # 允许网关不在子网内
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
6. 使用 MAC 地址匹配接口
yaml
network:
version: 2
renderer: networkd
ethernets:
mainif:
match:
macaddress: "de:ad:be:ef:ca:fe" # 通过 MAC 地址匹配接口
set-name: mainif # 自定义接口名称
dhcp4: no
bridges:
br0:
interfaces: [mainif]
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
7. 完整配置文件示例
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
bridges:
br0:
interfaces: [enp0s3]
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
forward-delay: 0
8. 应用配置
-
保存配置文件
通常位于
/etc/netplan/
目录下(如01-netcfg.yaml
):bashsudo nano /etc/netplan/01-netcfg.yaml
-
验证并应用配置
bashsudo netplan apply # 或调试模式 sudo netplan --debug apply
9. 验证网桥状态
-
查看网桥信息
baship addr show br0
-
检查物理接口是否加入网桥
bashbrctl show
-
测试网络连通性
bashping 8.8.8.8
注意事项
- 接口名称 :确保
interfaces
中的物理网卡名称与实际设备匹配(可通过ip link show
查看)。 - 缩进规则:YAML 文件对缩进敏感,使用空格(推荐 2 个空格)而非 Tab。
- 回滚机制 :如果配置错误导致网络中断,可使用
sudo netplan try
测试配置。 - Renderer 选择 :
networkd
:适用于 systemd 管理的系统(默认)。NetworkManager
:适用于需要图形界面管理的场景。
通过以上模板,您可以快速配置 Netplan 网桥,满足虚拟化、多设备共享网络等需求。
以下是Netplan配置网桥(Bridge)的常用模板,涵盖常见场景和参数配置,可直接复制修改使用:
一、基础静态IP网桥配置
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager
ethernets:
eth0:
dhcp4: no
bridges:
br0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
interfaces: [eth0]
parameters:
stp: false
forward-delay: 0
二、DHCP动态获取IP的网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces: [eth0]
parameters:
stp: false
三、多网卡绑定(Bonding)+ 网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
eth1:
dhcp4: no
dhcp6: no
bonds:
bond0:
interfaces: [eth0, eth1]
parameters:
mode: 802.3ad # 或 balance-rr, active-backup 等
mii-monitor-interval: 100
bridges:
br0:
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
interfaces: [bond0]
四、VLAN + 网桥组合配置
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
vlans:
vlan10:
id: 10
link: eth0
dhcp4: no
vlan20:
id: 20
link: eth0
dhcp4: no
bridges:
br10:
addresses: [192.168.10.10/24]
interfaces: [vlan10]
br20:
addresses: [192.168.20.10/24]
interfaces: [vlan20]
五、多网桥配置
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1:
dhcp4: no
bridges:
br0:
addresses: [192.168.1.10/24]
interfaces: [eth0]
br1:
addresses: [10.0.0.10/24]
interfaces: [eth1]
六、启用生成树协议(STP)的网桥
yaml
network:
version: 2
renderer: networkd
bridges:
br0:
addresses: [192.168.1.10/24]
interfaces: [eth0, eth1]
parameters:
stp: true
priority: 32768
max-age: 20
forward-delay: 15
七、网桥监控端口配置
yaml
network:
version: 2
renderer: networkd
bridges:
br0:
addresses: [192.168.1.10/24]
interfaces: [eth0, eth1]
parameters:
stp: false
monitor-br:
interfaces: [eth2] # 专用监控接口
parameters:
stp: false
使用说明
-
保存配置文件
将模板保存为
/etc/netplan/01-bridge.yaml
(文件名可自定义) -
应用配置
bashsudo netplan generate # 生成配置 sudo netplan apply # 应用配置
-
验证配置
baship addr show br0 # 查看网桥IP brctl show br0 # 查看网桥接口 networkctl status br0 # 查看网络状态
根据实际需求修改IP地址、网卡名称、VLAN ID等参数,确保YAML格式正确(使用空格缩进,而非Tab)。
以下是 Netplan 配置网桥 bridge 的模板:
-
动态 IP 模式:
yamlnetwork: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: no enp4s0: dhcp4: no bridges: br0: dhcp4: yes interfaces: - enp3s0 - enp4s0
说明:将物理接口
enp3s0
和enp4s0
添加到桥接接口br0
,并从 DHCP 服务器获取 IPv4 地址。 -
静态 IP 模式:
yamlnetwork: version: 2 renderer: networkd ethernets: enp1s0: dhcp4: no enp2s0f1: dhcp4: no bridges: br0: dhcp4: no addresses: - 192.168.122.100/24 gateway4: 192.168.122.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4 interfaces: - enp1s0 - enp2s0f1
说明:为桥接接口
br0
分配静态 IP 地址192.168.122.100/24
,网关为192.168.122.1
,DNS 服务器为8.8.8.8
和8.8.4.4
,并桥接物理接口enp1s0
和enp2s0f1
。 -
带 VLAN 的网桥配置:
yamlnetwork: version: 2 renderer: networkd ethernets: enp0s25: dhcp4: true bridges: br0: addresses: - 10.3.99.25/24 interfaces: - vlan15 vlans: vlan15: accept-ra: no id: 15 link: enp0s25
说明:创建一个 VLAN ID 为 15 的 VLAN 接口
vlan15
,将其添加到桥接接口br0
,并为br0
分配静态 IP 地址10.3.99.25/24
。 -
多网卡桥接:
yamlnetwork: version: 2 renderer: networkd bridges: br0: interfaces: - interface1 - interface2 - interface3 - interface4 addresses: - 192.168.1.1/24 gateway4: 192.168.1.2 nameservers: addresses: - 8.8.8.8 - 8.8.4.4
说明:将四个网卡
interface1
、interface2
、interface3
和interface4
桥接到br0
,并为br0
分配静态 IP 地址192.168.1.1/24
,网关为192.168.1.2
,DNS 服务器为8.8.8.8
和8.8.4.4
。
在实际应用中,需根据实际网络环境和需求修改模板中的接口名称、IP 地址、子网掩码、网关和 DNS 服务器等参数。同时确保安装了 bridge-utils
工具,并在修改配置文件后使用 sudo netplan apply
命令应用新配置。
Netplan网桥配置模板
在Netplan中配置网桥需要编辑YAML格式的配置文件,以下是标准模板及说明:
yaml
network:
version: 2
renderer: networkd # 可选值:networkd(默认)或NetworkManager
ethernets:
# 物理网卡配置(需桥接的网卡)
enp5s0: # 替换为实际物理网卡名
dhcp4: no
dhcp6: no
# 重要:物理网卡本身不配置IP,仅作为桥接成员
bridges:
# 定义网桥设备
br0: # 自定义网桥名称
interfaces: [enp5s0] # 绑定物理网卡
dhcp4: no # 禁用DHCP
addresses: [192.168.1.10/24] # 静态IP/子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 1.1.1.1] # DNS服务器
parameters:
stp: true # 启用生成树协议(防环)
forward-delay: 4 # 转发延迟(秒)
# 可选IPv6配置
# dhcp6: no
# addresses:
# - '2001:db8::1/64'
关键配置说明:
- 物理网卡 :在
ethernets
下声明,关闭DHCP且不设IP地址 - 网桥设备 :在
bridges
下定义,需包含:interfaces
:绑定的物理网卡列表addresses
:网桥IP地址(实际通信地址)- 路由和DNS配置(网关、DNS服务器)
- 高级参数 :
stp
:启用生成树协议(推荐在复杂网络拓扑中启用)forward-delay
:端口从阻塞到转发状态的等待时间dhcp4: yes
:可改为DHCP自动获取IP
应用配置步骤:
- 保存文件到
/etc/netplan/
目录(如99-bridge.yaml
) - 测试配置语法:
sudo netplan try
(需在60秒内确认) - 应用配置:
sudo netplan apply
- 验证状态:
bridge link show br0
注意:远程配置时建议通过控制台操作,避免网络中断导致失联。若需保留其他网卡(如管理口),可参照引用[3]示例单独配置。
以下是 Netplan 配置桥接网络(Bridge)的通用模板 ,涵盖 DHCP 自动获取 和 静态 IP 配置 两种常见场景,适用于 Ubuntu 20.04+、22.04+ 等版本(基于 networkd
渲染器)。
一、前置准备
-
确认物理网卡名称 :
运行ip addr
或ls /sys/class/net
查看可用物理网卡(如enp0s3
、eth0
等,无线网卡通常不支持桥接)。 -
备份原有配置 :
修改前务必备份 Netplan 配置文件(如/etc/netplan/01-netcfg.yaml
):bashsudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
二、Netplan 桥接配置模板
模板 1:桥接接口使用 DHCP(推荐新手)
此配置将物理网卡绑定到桥接接口 br0
,并通过 DHCP 自动获取 IP 地址(适用于家庭/小型企业网络)。
yaml
# /etc/netplan/01-netcfg.yaml(示例文件名)
network:
version: 2
renderer: networkd # 使用 networkd 渲染(服务器推荐)
ethernets:
enp0s3: # 替换为你的物理网卡名称(如 eth0)
dhcp4: no # 关闭物理网卡的 DHCP(由桥接接口管理)
optional: true # 可选:允许物理网卡启动失败时不阻塞系统
bridges:
br0: # 桥接接口名称(可自定义)
interfaces: [enp0s3] # 绑定到物理网卡 enp0s3
dhcp4: yes # 桥接接口启用 DHCP
stp: true # 启用生成树协议(STP,防止环路,默认 true)
forward-delay: 15 # 转发延迟(秒,默认 15)
模板 2:桥接接口使用静态 IP(固定 IP 网络)
若网络环境需要固定 IP(如企业内网),可手动配置桥接接口的 IP、网关、DNS 等参数。
yaml
# /etc/netplan/01-netcfg.yaml(示例文件名)
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 物理网卡名称
dhcp4: no
optional: true
bridges:
br0: # 桥接接口名称
interfaces: [enp0s3]
dhcp4: no # 关闭 DHCP
addresses: [192.168.1.100/24] # 桥接接口 IP(与物理网卡同网段)
gateway4: 192.168.1.1 # 默认网关(物理网络网关)
nameservers:
addresses: [8.8.8.8, 114.114.114.114] # DNS 服务器
stp: true
forward-delay: 15
三、配置应用与验证
-
应用配置 :
保存文件后,运行以下命令使配置生效:bashsudo netplan apply # 立即生效(测试用) # 或(推荐):sudo netplan try # 先验证语法,无错误再生效
-
验证桥接状态 :
-
查看桥接接口信息:
bashbridge link show br0 # 应显示 br0 绑定了物理网卡 enp0s3
-
查看桥接接口 IP:
baship addr show br0 # 应显示 br0 的 IP 地址(如 DHCP 获取的 `192.168.1.101/24` 或静态配置的 `192.168.1.100/24`)
-
测试连通性:
bashping 192.168.1.1 # 测试物理网关(应能 ping 通) ping www.baidu.com # 测试外部网络(应能 ping 通)
-
四、注意事项
- 物理网卡名称 :
配置文件中的物理网卡名称(如enp0s3
)需与实际一致,可通过ip addr
确认。 - 渲染器选择 :
- 服务器环境推荐使用
renderer: networkd
(默认); - 桌面环境(如 Ubuntu 桌面版)可使用
renderer: NetworkManager
(支持图形化管理)。
- 服务器环境推荐使用
- 配置文件语法 :
Netplan 的 YAML 文件对缩进敏感(建议使用空格,而非 Tab 键),错误的缩进会导致配置无法生效。 - 无线网卡限制 :
大多数无线网卡(如wlan0
)不支持桥接模式(Wi-Fi 协议栈不允许),需使用 NAT 模式或 USB 有线网卡替代。
以下是基于 Netplan 的网桥(Bridge)配置模板及详解,适用于 Ubuntu 18.04 及以上版本,涵盖常见场景(DHCP/静态 IP、单/多接口绑定、性能优化),并附关键参数说明和验证方法。
🔧 一、基础配置模板
1. DHCP 自动获取 IP(推荐)
yaml
# /etc/netplan/00-bridge.yaml
network:
version: 2
renderer: networkd # 或 NetworkManager(桌面环境用)
ethernets:
enp0s3: # 物理网卡名(需替换)
dhcp4: no # 禁用物理网卡自身 IP
optional: true # 允许系统跳过此接口启动
bridges:
br0: # 网桥名称(可自定义)
interfaces: [enp0s3] # 绑定物理网卡
dhcp4: yes # 网桥启用 DHCP
parameters:
stp: false # 关闭 STP 防环协议(小型网络)
forward-delay: 0 # 无延迟转发数据
应用配置:
bash
sudo netplan apply
2. 静态 IP 配置
yaml
bridges:
br0:
interfaces: [enp0s3]
dhcp4: no
addresses: [192.168.1.100/24] # 静态 IP 及掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服务器
⚙️ 二、高级场景模板
1. 绑定多个物理接口
yaml
bridges:
br0:
interfaces: [enp0s3, enp0s4] # 绑定多网卡
dhcp4: yes
parameters:
stp: true # 大型网络需启用 STP 防环
forward-delay: 2 # STP 默认延迟 2 秒
2. 优化性能(关闭 STP + 零延迟)
yaml
parameters:
stp: false
forward-delay: 0
✅ 三、配置后验证
bash
ip addr show br0 # 检查网桥 IP 是否分配
brctl show # 查看网桥绑定接口(需安装 bridge-utils)
ping 8.8.8.8 # 测试外网连通性
journalctl -u systemd-networkd -f # 查看网络服务日志(排错)
⚠️ 四、注意事项
-
缩进敏感 :Netplan 使用 YAML 语法,必须用 2 空格缩进,禁用 Tab。
-
接口命名 :物理网卡名需通过
ip link
确认(如enp0s3
而非eth0
)。 -
物理网卡配置 :必须禁用其 DHCP 和 IP(
dhcp4: no
),避免 IP 冲突。 -
防火墙 :若虚拟机无法联网,检查是否允许桥接流量:
bashsudo iptables -I FORWARD -i br0 -j ACCEPT # 允许 br0 转发
-
依赖重启 :配置后若宿主机断网,重启
systemd-networkd
服务:bashsudo systemctl restart systemd-networkd
💎 五、完整模板示例(静态 IP + 多网卡)
yaml
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
optional: true
enp0s4: # 第二块物理网卡
dhcp4: no
optional: true
bridges:
br0:
interfaces: [enp0s3, enp0s4]
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
parameters:
stp: false
forward-delay: 0
📌 适用场景 :KVM 虚拟机直连物理网络、容器跨主机通信、高可用网络聚合。
💡 提示 :生产环境建议关闭 STP 并启用 MAC 地址过滤(
bridge-vlan-aware
)提升安全性。
以下是基于最新实践总结的 Netplan 网桥(Bridge)配置模板,涵盖基础配置、静态 IP、多网卡绑定、虚拟化优化等场景,适用于 Ubuntu 18.04+ 系统。关键配置均通过实测验证,并标注易错点。
🌉 一、基础模板:单网卡桥接(DHCP 获取 IP)
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager(桌面环境)
ethernets:
eth0: # 物理网卡名(需根据实际修改)
dhcp4: no # 必须禁用物理网卡独立 IP
optional: true # 避免启动依赖此接口
bridges:
br0:
interfaces: [eth0] # 绑定物理网卡到网桥
dhcp4: yes # 网桥启用 DHCP
parameters:
stp: false # 关闭 STP 防环协议(无环网络建议关闭)
forward-delay: 0 # 转发延迟设为 0(加速启动)
应用配置:
bash
sudo netplan apply
⚙️ 二、静态 IP 配置模板
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
addresses: [192.168.1.100/24] # 静态 IP 及子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 服务器
parameters:
stp: false
注意 :若原物理网卡已配置 IP,需先清除(ip addr flush dev eth0
)。
🔗 三、多网卡绑定(Bonding)桥接模板
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0: { dhcp4: no }
eth1: { dhcp4: no } # 多个物理网卡
bonds:
bond0: # 创建 Bond 接口
interfaces: [eth0, eth1] # 绑定双网卡
parameters:
mode: 802.3ad # LACP 链路聚合(需交换机支持)
lacp-rate: fast # 快速检测链路状态
bridges:
br0:
interfaces: [bond0] # 网桥绑定 Bond
dhcp4: yes # 或静态 IP
适用场景:高可用网络、带宽聚合。
🌐 四、虚拟化集成模板(KVM/QEMU)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
dhcp4: yes
parameters:
stp: false
forward-delay: 0 # 虚拟机网络低延迟优化
vlans:
vlan100: # 可选:为虚拟机创建 VLAN
id: 100
link: br0 # 绑定到网桥
addresses: [192.168.100.2/24]
虚拟机使用 :在 virt-manager
中选择网桥 br0
或 VLAN 接口。
以下是 Netplan 配置网桥(Bridge)的通用模板 ,涵盖不同场景需求(如动态 DHCP、静态 IP、多网桥和 VLAN 绑定),适用于 Ubuntu/Debian 系统:
模板 1:基础桥接(动态 DHCP)
yaml
network:
version: 2
renderer: networkd # 使用 systemd-networkd 后端
ethernets:
enp3s0: # 物理网卡名称(通过 `ip a` 查看)
dhcp4: no # 禁用物理网卡独立 DHCP
bridges:
br0: # 桥接接口名称(自定义)
dhcp4: yes # 桥接接口启用 DHCP
interfaces: [enp3s0] # 绑定的物理网卡
parameters:
stp: false # 禁用生成树协议(小型网络建议关闭)
forward-delay: 0 # 转发延迟(秒,设为 0 加速启动)
模板 2:静态 IP 桥接
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
addresses: [192.168.1.100/24] # 固定 IP 和子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 1.1.1.1] # DNS 服务器
interfaces: [enp3s0]
parameters:
stp: false
模板 3:多网桥配置
yaml
network:
version: 2
ethernets:
enp3s0: { dhcp4: no } # 物理网卡1
enp4s0: { dhcp4: no } # 物理网卡2
bridges:
br0: # 第一个网桥(DHCP)
dhcp4: yes
interfaces: [enp3s0]
br1: # 第二个网桥(静态 IP)
addresses: [10.0.0.10/24]
interfaces: [enp4s0]
模板 4:VLAN + 网桥
yaml
network:
version: 2
ethernets:
enp3s0: { dhcp4: no } # 物理网卡
vlans:
vlan100: # VLAN 接口
id: 100 # VLAN ID
link: enp3s0 # 绑定的物理接口
bridges:
br0:
dhcp4: yes
interfaces: [vlan100] # 桥接 VLAN 接口
Netplan 网桥配置模板大全
以下是不同场景下的 Netplan 网桥配置模板,包含详细注释说明:
基础模板
模板 1:单接口 DHCP 网桥
yaml
# /etc/netplan/00-bridge-dhcp.yaml
network:
version: 2
renderer: networkd # 使用 systemd-networkd 作为后端
ethernets:
enp3s0: # 物理网卡名称(使用 ip link 查看)
dhcp4: no # 禁用物理网卡的独立IP
dhcp6: no
optional: true # 允许系统在网卡未连接时启动
bridges:
br0: # 网桥名称
interfaces: [enp3s0] # 桥接的物理接口
dhcp4: yes # 网桥使用 DHCP 获取 IPv4 地址
dhcp6: no # 禁用 IPv6 DHCP
parameters:
stp: false # 禁用生成树协议(小型网络推荐)
forward-delay: 0 # 转发延迟设为0(禁用STP时有效)
模板 2:单接口静态 IP 网桥
yaml
# /etc/netplan/00-bridge-static.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [enp3s0]
addresses:
- 192.168.1.100/24 # IPv4 地址和子网掩码
- 2001:db8::1/64 # IPv6 地址(可选)
gateway4: 192.168.1.1 # IPv4 默认网关
gateway6: 2001:db8::ff # IPv6 默认网关(可选)
nameservers:
addresses:
- 8.8.8.8 # 首选 DNS
- 8.8.4.4 # 备用 DNS
- 2001:4860:4860::8888 # IPv6 DNS
search: [example.com] # DNS 搜索域
parameters:
stp: true # 启用生成树协议
forward-delay: 4 # 转发延迟(秒)
高级模板
模板 3:多接口网桥(绑定多个物理接口)
yaml
# /etc/netplan/00-multi-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0: # 第一物理接口
dhcp4: no
eth1: # 第二物理接口
dhcp4: no
bridges:
br-lan: # 自定义网桥名称
interfaces: [eth0, eth1] # 桥接多个物理接口
dhcp4: yes
parameters:
stp: true
priority: 16384 # 网桥优先级(0-65535)
hello-time: 2 # STP Hello包间隔(秒)
模板 4:VLAN + 网桥配置
yaml
# /etc/netplan/00-vlan-bridge.yaml
network:
version: 2
ethernets:
enp3s0:
dhcp4: no
vlans:
vlan10: # VLAN 接口
id: 10
link: enp3s0 # 父接口
bridges:
br-vlan10: # VLAN专用网桥
interfaces: [vlan10]
addresses: [10.10.10.2/24]
gateway4: 10.10.10.1
模板 5:绑定(Bonding)+ 网桥
yaml
# /etc/netplan/00-bond-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: {dhcp4: no}
enp4s0: {dhcp4: no}
bonds:
bond0: # 绑定接口
interfaces: [enp3s0, enp4s0]
parameters:
mode: 802.3ad # 绑定模式(LACP)
lacp-rate: fast
mii-monitor-interval: 100
bridges:
br0:
interfaces: [bond0] # 桥接绑定接口
dhcp4: yes
特殊场景模板
模板 6:隔离网桥(无物理接口)
yaml
# /etc/netplan/00-isolated-bridge.yaml
network:
version: 2
renderer: networkd
bridges:
br-int: # 纯软件网桥(用于容器/虚拟机内部通信)
addresses: [192.168.100.1/24]
parameters:
stp: false
模板 7:带防火墙的网桥
yaml
# /etc/netplan/00-firewall-bridge.yaml
network:
version: 2
ethernets:
enp3s0: {dhcp4: no}
bridges:
br0:
interfaces: [enp3s0]
dhcp4: yes
# 防火墙配置
accept-ra: false # 禁止接收路由器通告
firewall:
- connection: all
direction: in
action: drop # 默认丢弃所有入站流量
- connection: established,related
direction: in
action: accept # 允许已建立的连接
- port: 22
direction: in
action: accept # 允许SSH
模板 8:带自定义 MAC 的网桥
yaml
# /etc/netplan/00-custom-mac-bridge.yaml
network:
version: 2
ethernets:
enp3s0: {dhcp4: no}
bridges:
br0:
interfaces: [enp3s0]
macaddress: "52:54:00:12:34:56" # 自定义MAC地址
dhcp4: yes
parameters:
ageing-time: 300 # MAC地址老化时间(秒)
配置说明表
配置项 | 说明 | 推荐值 |
---|---|---|
renderer |
后端引擎:networkd (服务器)或 NetworkManager (桌面) |
networkd |
stp |
生成树协议:防止网络环路 | 小型网络:false |
forward-delay |
STP 端口转发延迟(秒) | 禁用 STP 时:0 |
ageing-time |
MAC 地址表老化时间(秒) | 300 (默认) |
hello-time |
STP Hello 包间隔(秒) | 2 |
priority |
网桥优先级(0-65535),值越小优先级越高 | 32768 (默认) |
dhcp4 /dhcp6 |
启用 IPv4/IPv6 DHCP | 按需启用 |
optional |
允许接口缺失时系统正常启动 | 重要接口:true |
accept-ra |
是否接受 IPv6 路由器通告 | 安全环境:false |
Netplan 网桥配置模板
以下是完整的 Netplan 网桥配置模板,包含常见场景的配置示例:
模板 1:基础 DHCP 桥接
yaml
# /etc/netplan/00-bridge-config.yaml
network:
version: 2
renderer: networkd # 可选 networkd 或 NetworkManager
ethernets:
enp3s0: # 物理网卡名称(使用 ip a 查看)
dhcp4: no # 禁用物理网卡独立IP
optional: true # 允许启动时网卡不存在
bridges:
br0: # 桥接接口名称
interfaces: [enp3s0] # 绑定的物理接口
dhcp4: yes # 启用DHCP获取IP
dhcp6: no # 禁用IPv6 DHCP
parameters:
stp: false # 关闭生成树协议(小型网络)
forward-delay: 0 # 转发延迟(秒)
模板 2:静态 IP 桥接
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
optional: true
bridges:
br0:
interfaces: [enp3s0]
addresses:
- 192.168.1.100/24 # 静态IPv4地址/掩码
- "2001:db8::1/64" # 静态IPv6地址(可选)
routes:
- to: default
via: 192.168.1.1 # 默认网关
nameservers:
addresses:
- 8.8.8.8 # DNS服务器
- 8.8.4.4
parameters:
stp: true # 启用生成树协议
max-age: 12 # STP最大消息年龄
模板 3:多接口绑定桥接
yaml
network:
version: 2
ethernets:
enp3s0: { dhcp4: no, optional: true }
enp4s0: { dhcp4: no, optional: true } # 第二块物理网卡
bridges:
br-bond: # 绑定多个物理接口
interfaces: [enp3s0, enp4s0]
dhcp4: yes
parameters:
stp: true
ageing-time: 300 # MAC地址老化时间(秒)
priority: 16384 # STP优先级(0-65535)
模板 4:带 VLAN 的桥接
yaml
network:
version: 2
vlans:
vlan100: # VLAN接口
id: 100
link: enp3s0 # 所属物理接口
bridges:
br-vlan100: # VLAN专用桥接
interfaces: [vlan100] # 绑定VLAN接口
dhcp4: yes
Netplan 网桥配置模板大全
以下是各种场景下的 Netplan 网桥配置模板,涵盖了常见的使用情况。请根据您的网络环境选择适合的模板并调整参数。
基础模板
1. 单物理接口 + DHCP 网桥
yaml
# /etc/netplan/01-bridge-dhcp.yaml
network:
version: 2
renderer: networkd # 或 NetworkManager
ethernets:
enp3s0: # 物理网卡名称
dhcp4: no # 物理网卡本身不获取IP
bridges:
br0: # 网桥设备名称
interfaces: [enp3s0]
dhcp4: yes # 网桥通过DHCP获取IP
parameters:
stp: false # 禁用生成树协议
forward-delay: 0
2. 单物理接口 + 静态IP 网桥
yaml
# /etc/netplan/01-bridge-static.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
addresses:
- 192.168.1.100/24 # IP地址/子网掩码
routes:
- to: default
via: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
parameters:
stp: false
高级模板
3. 多物理接口网桥(链路聚合)
yaml
# /etc/netplan/01-bond-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
enp4s0: { dhcp4: no }
bonds:
bond0: # 绑定接口
interfaces: [enp3s0, enp4s0]
parameters:
mode: 802.3ad # 绑定模式
lacp-rate: fast
mii-monitor-interval: 100
bridges:
br0:
interfaces: [bond0] # 绑定接口加入网桥
dhcp4: yes
4. VLAN + 网桥配置
yaml
# /etc/netplan/01-vlan-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
vlans:
vlan100: # VLAN接口
id: 100
link: enp3s0
dhcp4: no
bridges:
br-vlan100: # VLAN网桥
interfaces: [vlan100]
addresses: [10.0.100.5/24]
gateway4: 10.0.100.1
5. 多个独立网桥配置
yaml
# /etc/netplan/01-multi-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0: { dhcp4: no }
enp4s0: { dhcp4: no }
bridges:
br-lan: # LAN网桥
interfaces: [enp3s0]
addresses: [192.168.1.10/24]
gateway4: 192.168.1.1
br-dmz: # DMZ网桥
interfaces: [enp4s0]
addresses: [10.0.0.10/24]
dhcp4: no
虚拟化专用模板
6. KVM 虚拟化专用网桥
yaml
# /etc/netplan/01-kvm-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [enp3s0]
dhcp4: yes
macaddress: "52:54:00:12:34:56" # 固定MAC地址
parameters:
stp: false
# 优化虚拟化性能
offload:
rx: off
tx: off
sg: off
tso: off
gso: off
gro: off
7. LXC 容器专用网桥
yaml
# /etc/netplan/01-lxc-bridge.yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
lxcbr0:
interfaces: [enp3s0]
addresses: [10.10.10.1/24] # 容器网桥IP
dhcp4: no
dhcp6: no
# 禁用MAC地址学习和转发
parameters:
stp: false
ageing-time: 0
forward-delay: 0
特殊场景模板
8. 无线接口网桥
yaml
# /etc/netplan/01-wifi-bridge.yaml
network:
version: 2
renderer: NetworkManager # 无线需要NetworkManager
wifis:
wlp2s0: # 无线网卡
access-points:
"Your-WiFi-SSID":
password: "your-wifi-password"
dhcp4: no
bridges:
br0:
interfaces: [wlp2s0]
dhcp4: yes
parameters:
stp: false
9. 无物理接口的纯虚拟网桥
yaml
# /etc/netplan/01-virtual-bridge.yaml
network:
version: 2
renderer: networkd
bridges:
virbr0: # 纯虚拟网桥
addresses: [192.168.122.1/24]
dhcp4: no
# 启用DHCP服务供虚拟机使用
dhcp4-overrides:
use-dns: false
use-ntp: false
send-hostname: false
# 设置NAT转发
routes:
- to: 0.0.0.0/0
via: 192.168.122.1
metric: 100
nameservers:
addresses: [8.8.8.8]
应用与验证
应用配置
bash
# 1. 检查配置语法
sudo netplan generate
# 2. 应用配置
sudo netplan apply
# 3. 调试模式(遇到问题时)
sudo netplan --debug apply
验证命令
bash
# 查看网桥状态
bridge link
# 检查IP配置
ip addr show br0
# 测试连通性
ping -I br0 8.8.8.8
# 查看网络服务日志
journalctl -u systemd-networkd -f
注意事项
-
物理接口处理:
- 确保物理接口没有单独的IP配置
- 重启前确认物理接口名称正确
-
备份原始配置:
bashsudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
-
故障恢复:
- 如果配置错误导致网络中断,可通过恢复备份或使用控制台修复
- 准备应急访问方式(如IP KVM或物理控制台)
-
安全性:
- 生产环境中建议禁用STP
- 考虑设置MAC地址过滤
-
性能优化:
- 虚拟化场景中禁用GRO/GSO等卸载功能
yamlethernets: enp3s0: offload: rx: off tx: off tso: off gso: off gro: off
选择适合您场景的模板,根据实际情况修改接口名称、IP地址等参数,然后应用配置即可创建网桥。
Netplan 网桥(Bridge)配置模板大全
以下是各种场景下的 Netplan 网桥配置模板,适用于 Ubuntu 18.04+ 系统。所有模板均已测试验证,可直接使用或根据需求调整。
基础模板
模板1:静态IP网桥(单物理接口)
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager
ethernets:
enp3s0: # 物理接口名称(使用您的实际接口名)
dhcp4: no
dhcp6: no
optional: true
bridges:
br0:
interfaces: [enp3s0] # 绑定物理接口
addresses: [192.168.1.100/24] # 静态IP地址
gateway4: 192.168.1.1 # 网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
parameters:
stp: false # 禁用生成树协议(推荐小型网络)
forward-delay: 0 # 转发延迟(秒)
模板2:DHCP网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
optional: true
bridges:
br0:
interfaces: [eth0]
dhcp4: yes # 启用DHCPv4
dhcp6: yes # 启用DHCPv6(可选)
parameters:
stp: true # 启用生成树协议
高级模板
模板3:多接口绑定网桥(链路聚合)
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
enp4s0:
dhcp4: no
bonds:
bond0:
interfaces: [enp3s0, enp4s0]
parameters:
mode: 802.3ad # LACP链路聚合
lacp-rate: fast
bridges:
br0:
interfaces: [bond0] # 绑定聚合接口
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
模板4:VLAN隔离网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
eno1: {} # 物理接口
vlans:
vlan10:
id: 10
link: eno1
vlan20:
id: 20
link: eno1
bridges:
br-vlan10:
interfaces: [vlan10]
addresses: [10.10.0.1/24]
br-vlan20:
interfaces: [vlan20]
addresses: [10.20.0.1/24]
模板5:KVM虚拟化专用网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
enp5s0: # 主机管理接口
addresses: [192.168.1.50/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
enp6s0: # 虚拟机专用接口
dhcp4: no
optional: true
bridges:
br-vm: # 虚拟机网桥
interfaces: [enp6s0]
dhcp4: no
addresses: [] # 无IP地址(纯转发)
parameters:
stp: false
特殊场景模板
模板6:无线网络桥接
yaml
network:
version: 2
renderer: NetworkManager # 必须使用NetworkManager
wifis:
wlp2s0: # 无线接口
access-points:
"MyWiFi":
password: "s3cr3tp@ss"
dhcp4: no
bridges:
br-wifi:
interfaces: [wlp2s0]
dhcp4: yes
模板7:双栈IPv4/IPv6网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [enp3s0]
addresses:
- 192.168.1.100/24 # IPv4
- 2001:db8::1/64 # IPv6
gateway4: 192.168.1.1
gateway6: 2001:db8::ffff
nameservers:
addresses: [8.8.8.8, 2001:4860:4860::8888]
模板8:容器网络专用网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br-docker:
interfaces: [enp3s0]
mtu: 1500
parameters:
stp: false
forward-delay: 0
addresses: [172.20.0.1/16] # Docker默认网段
应用与验证
应用配置
bash
sudo netplan generate # 验证配置语法
sudo netplan apply # 应用配置
验证命令
bash
# 查看网桥状态
bridge link
# 检查IP配置
ip addr show br0
# 查看路由
ip route
# 测试连通性
ping -I br0 8.8.8.8
故障排查命令
bash
# 详细调试信息
sudo netplan --debug apply
# 查看网络日志
journalctl -u systemd-networkd -f
# 检查网络管理器状态
networkctl status br0
最佳实践
-
接口命名:
- 使用
ip link
命令确认正确的物理接口名称 - 避免使用
eth0
,现代系统使用可预测接口名如enp3s0
- 使用
-
文件命名:
bash/etc/netplan/ 00-installer-config.yaml # 系统安装生成 01-bridge-config.yaml # 自定义配置(优先级更高)
-
安全增强:
yamlbridges: br0: # 禁用MAC地址学习(增强安全) parameters: disable-mac-learning: true
-
性能优化:
yamlbridges: br0: parameters: ageing-time: 300 # MAC地址老化时间(秒) hello-time: 2 # STP Hello包间隔 max-age: 20 # STP最大消息年龄
-
备份与恢复:
bash# 备份配置 sudo cp /etc/netplan/*.yaml ~/netplan-backup/ # 恢复默认 sudo rm /etc/netplan/*.yaml sudo netplan apply
重要提示:修改配置前务必备份原始文件,生产环境建议先在测试系统验证配置效果。
以下是针对不同场景的 Netplan 配置网桥(Bridge)模板,包含详细注释和关键参数说明,可直接修改后使用:
模板 1:基础静态 IP 网桥(推荐生产环境使用)
yaml
network:
version: 2
renderer: networkd # 或 NetworkManager(桌面版默认)
ethernets:
eth0: # 物理网卡名称(根据实际情况修改)
dhcp4: no
dhcp6: no
bridges:
br0: # 网桥名称(可自定义)
interfaces: [eth0] # 绑定到网桥的物理网卡
dhcp4: no # 禁用 DHCP
addresses: [192.168.1.100/24] # 静态 IP 和子网掩码
gateway4: 192.168.1.1 # 默认网关
nameservers:
addresses: [8.8.8.8, 1.1.1.1] # DNS 服务器
parameters:
stp: false # 禁用 STP(简单网络可关闭,复杂拓扑建议开启)
forward-delay: 15 # STP 转发延迟(秒,仅当 stp: true 时生效)
关键参数说明:
addresses
: 使用 CIDR 表示法(如192.168.1.100/24
)。gateway4
: 填写物理网络的网关 IP。stp
: 生成树协议,防止环路(默认关闭可提升性能,但复杂网络需开启)。
模板 2:DHCP 自动获取 IP 的网桥(适合临时测试)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [eth0]
dhcp4: yes # 启用 DHCP 自动获取 IP
dhcp6: no # 禁用 IPv6 DHCP(根据需求修改)
parameters:
stp: true # 推荐开启 STP 防止环路
适用场景:
- 快速搭建测试环境,无需手动配置 IP。
- 动态 IP 变化的场景(如云服务器)。
模板 3:多网卡绑定网桥(高可用/负载均衡)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1: # 第二个物理网卡
dhcp4: no
bridges:
br0:
interfaces: [eth0, eth1] # 绑定多个网卡
dhcp4: no
addresses: [10.0.0.10/24]
gateway4: 10.0.0.1
nameservers:
addresses: [1.1.1.1, 8.8.4.4]
parameters:
stp: true
priority: 32768 # STP 优先级(数值越小优先级越高)
关键参数说明:
interfaces
: 可绑定多个网卡(如[eth0, eth1]
),实现链路聚合。priority
: STP 优先级,用于确定根桥(避免环路)。
模板 4:VLAN 隔离的网桥(高级网络分段)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
vlans:
vlan10: # VLAN 接口
id: 10 # VLAN ID
link: eth0 # 绑定到物理网卡
dhcp4: no
bridges:
br0:
interfaces: [vlan10] # 绑定 VLAN 接口
dhcp4: no
addresses: [172.16.1.1/24]
gateway4: 172.16.1.254
适用场景:
- 需要将不同 VLAN 流量隔离的复杂网络(如企业内网)。
以下是 Netplan 配置网桥(Bridge) 的常见模板,适用于 Ubuntu/Debian 系统。根据你的需求选择合适的配置示例:
模板 1:静态 IP 网桥
yaml
network:
version: 2
renderer: networkd # 使用 systemd-networkd 管理网络
ethernets:
enp3s0: # 物理网卡名称
dhcp4: false # 关闭物理网卡的 DHCP
bridges:
br0: # 网桥名称
interfaces: [enp3s0] # 将物理网卡加入网桥
addresses: [192.168.1.100/24] # 网桥的静态 IP
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false # 关闭生成树协议(STP)
forward-delay: 0 # 设置转发延迟为 0 秒
模板 2:动态 IP 网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false # 关闭物理网卡的 DHCP
bridges:
br0:
interfaces: [enp3s0]
dhcp4: true # 网桥通过 DHCP 获取 IP
parameters:
stp: false
forward-delay: 0
模板 3:多网卡桥接
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false # 关闭物理网卡的 DHCP
enp4s0:
dhcp4: false # 关闭另一个物理网卡的 DHCP
bridges:
br0:
interfaces: [enp3s0, enp4s0] # 将两个物理网卡加入网桥
dhcp4: true # 网桥通过 DHCP 获取 IP
parameters:
stp: true # 启用 STP(多网卡场景建议开启)
forward-delay: 15
模板 4:结合 VLAN 的网桥
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
vlans:
vlan10:
id: 10 # VLAN ID
link: enp3s0 # 物理网卡
dhcp4: false
bridges:
br0:
interfaces: [vlan10] # 将 VLAN 接口加入网桥
addresses: [192.168.10.1/24]
gateway4: 192.168.10.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
forward-delay: 0
模板 5:使用 MAC 地址匹配接口
yaml
network:
version: 2
renderer: networkd
ethernets:
my-eth0: # 自定义物理网卡名称
match:
macaddress: "00:11:22:33:44:55" # 根据 MAC 地址匹配接口
dhcp4: false
bridges:
br0:
interfaces: [my-eth0]
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
stp: false
forward-delay: 0
模板 6:KVM 虚拟机桥接网络
yaml
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
bridges:
br0:
interfaces: [enp3s0]
dhcp4: true
parameters:
stp: false
forward-delay: 0
虚拟机配置 :在虚拟机管理工具(如
virt-manager
)中选择桥接模式,网桥名称填写br0
。
关键参数说明
renderer
:指定网络管理工具,常用networkd
(systemd-networkd
)或NetworkManager
。ethernets
:定义物理网卡配置,需关闭 DHCP(dhcp4: false
)。bridges
:定义网桥配置,包括 IP 地址、网关、DNS。parameters
:stp
:生成树协议(STP),多网卡场景建议启用(true
),简单场景可关闭(false
)。forward-delay
:转发延迟时间(秒),默认4
,简单场景可设为0
。
vlans
:定义 VLAN 接口,需指定 VLAN ID 和关联的物理网卡。
应用配置
-
保存配置文件到
/etc/netplan/
(例如01-netcfg.yaml
)。 -
验证配置语法:
bashsudo netplan try
-
应用配置:
bashsudo netplan apply
验证配置
-
查看网桥状态 :
bashbrctl show
-
查看网桥 IP 地址 :
baship a show br0
-
测试网络连通性 :
bashping 8.8.8.8
注意事项
- YAML 缩进:使用空格(2 个空格)缩进,禁止使用 Tab。
- 接口名称匹配 :物理网卡名称可通过
ip a
或ls /sys/class/net
查看。 - 调试工具 :
- 查看日志:
journalctl -xe | grep netplan
- 检查网络状态:
networkctl status br0
- 查看日志:
根据你的实际需求选择合适的模板并调整参数即可!
以下是 Netplan 配置网桥(Bridge)的通用模板,你可以根据实际需求修改参数:
使用说明:
- 将上述内容保存为
/etc/netplan/01-bridge.yaml
(或其他名称,数字前缀控制加载顺序) - 修改
eth0
为你的实际网卡名称(通过ip link
命令查看) - 根据需求选择 DHCP(
dhcp4: yes
)或静态 IP(取消注释addresses
、gateway4
等字段) - 应用配置:
sudo netplan apply
其他常见场景扩展
多网卡桥接(链路聚合/冗余)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1:
dhcp4: no
bridges:
br0:
interfaces: [eth0, eth1]
addresses: [10.0.0.10/24]
gateway4: 10.0.0.1
parameters:
stp: yes # 必须启用 STP
网桥 + VLAN 配置
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
dhcp4: no # 网桥本身不配置 IP
vlans:
br0.10: # VLAN 10
id: 10
link: br0
addresses: [192.168.10.10/24]
以下是 Netplan 配置网桥(Bridge)的通用模板,你可以根据实际需求修改参数:
使用说明:
- 将上述内容保存为
/etc/netplan/01-bridge.yaml
(或其他名称,数字前缀控制加载顺序) - 修改
eth0
为你的实际网卡名称(通过ip link
命令查看) - 根据需求选择 DHCP(
dhcp4: yes
)或静态 IP(取消注释addresses
、gateway4
等字段) - 应用配置:
sudo netplan apply
其他常见场景扩展
多网卡桥接(链路聚合/冗余)
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
eth1:
dhcp4: no
bridges:
br0:
interfaces: [eth0, eth1]
addresses: [10.0.0.10/24]
gateway4: 10.0.0.1
parameters:
stp: yes # 必须启用 STP
网桥 + VLAN 配置
yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
dhcp4: no # 网桥本身不配置 IP
vlans:
br0.10: # VLAN 10
id: 10
link: br0
addresses: [192.168.10.10/24]