Skip to content

virbr0 虚拟网桥静态 IP 持久化操作记录

日期: 2026-08-15
主机: 192.168.122.9 (virbr0 虚拟网桥)
系统: Ubuntu 22.04.5 LTS
目标:192.168.122.9/24virbr0 上的配置持久化,重启后自动生效


1. 背景

virbr0 是 libvirt 创建的虚拟网桥,默认 IP 为 192.168.122.1/24
已手动添加 192.168.122.9/24 作为 secondary IP,但 NetworkManager 将配置保存在临时目录 /run/NetworkManager/system-connections/,该目录为 tmpfs,重启后丢失

2. 当前状态确认

bash
# 查看 virbr0 IP 配置
ip addr show virbr0

输出:

inet 192.168.122.9/24 scope global secondary virbr0
inet 192.168.122.1/24 scope global virbr0
bash
# 确认配置文件位置(临时路径)
nmcli -t -f NAME,FILENAME connection show | grep virbr0

输出:

virbr0:/run/NetworkManager/system-connections/virbr0.nmconnection

3. 持久化步骤

3.1 复制配置文件到持久化目录

bash
sudo cp /run/NetworkManager/system-connections/virbr0.nmconnection \
        /etc/NetworkManager/system-connections/virbr0.nmconnection

3.2 设置正确权限(NM 要求 600)

bash
sudo chmod 600 /etc/NetworkManager/system-connections/virbr0.nmconnection

3.3 删除临时配置文件

bash
sudo rm /run/NetworkManager/system-connections/virbr0.nmconnection

3.4 重新加载 NetworkManager

bash
sudo nmcli connection reload

4. 验证

bash
# 确认配置文件已指向持久化路径
nmcli -t -f NAME,FILENAME connection show | grep virbr0

期望输出:

virbr0:/etc/NetworkManager/system-connections/virbr0.nmconnection
bash
# 确认 IP 地址仍在
ip addr show virbr0 | grep inet

期望输出:

inet 192.168.122.9/24 brd 192.168.122.255 scope global noprefixroute virbr0
inet 192.168.122.1/24 brd 192.168.122.255 scope global secondary noprefixroute virbr0

5. 持久化配置文件内容

路径:/etc/NetworkManager/system-connections/virbr0.nmconnection

ini
[connection]
id=virbr0
uuid=c8193052-db0c-4267-988f-43a3d3ea3ca0
type=bridge
autoconnect=false
interface-name=virbr0

[bridge]
forward-delay=2

[ipv4]
address1=192.168.122.9/24
address2=192.168.122.1/24
method=manual

[ipv6]
addr-gen-mode=stable-privacy
method=ignore

[proxy]

6. 注意事项

  • /run/ 是 tmpfs 内存文件系统,重启后内容丢失
  • /etc/NetworkManager/system-connections/ 是 NM 持久化配置目录
  • NM 要求配置文件权限为 600,否则会忽略该文件
  • 如果同时存在 /run//etc/ 下的同名配置,NM 优先使用 /run/ 中的版本