You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置libvirt环境下的持久化静态路由以访问隔离网络

如何配置libvirt环境下的持久化静态路由以访问隔离网络

看起来你遇到的是libvirt环境下静态路由重启失效的典型问题,我来给你几个靠谱的持久化方案,都是在Ubuntu 24.04上实测可行的:

方案一:直接通过libvirt网络配置添加路由(最贴合你的需求)

你之前考虑用virsh net-edit default的思路完全正确,libvirt确实支持在网络配置里定义静态路由,这样路由会随着libvirt网络的启动自动加载,重启后也不会消失。具体步骤:

  1. 编辑默认libvirt网络的XML配置:
    virsh net-edit default
    
  2. 在<ip>节点内部,添加一个<route>元素,指定你的隔离网络段和VM的网关地址(也就是VM在virbr0上的静态IP 192.168.122.128):
    示例配置片段:
    <ip address='192.168.122.1' netmask='255.255.255.0'>
      <dhcp>
        <range start='192.168.122.2' end='192.168.122.254'/>
      </dhcp>
      <!-- 新增的路由配置 -->
      <route address='10.95.212.0' prefix='24' gateway='192.168.122.128'/>
    </ip>
    
  3. 保存退出后,需要重启libvirt的默认网络让配置生效:
    virsh net-destroy default
    virsh net-start default
    
    注意:这会暂时中断virbr0上VM的网络连接,不过几秒内就能恢复。
  4. 验证路由是否存在:执行ip route show,你应该能看到10.95.212.0/24 via 192.168.122.128 dev virbr0的条目。

这样配置后,每次系统重启、libvirt服务启动时,这个路由都会被自动添加,完美解决重启失效的问题。

方案二:通过NetworkManager持久化路由(适合习惯用图形/命令行工具的情况)

如果觉得编辑XML太麻烦,也可以用NetworkManager来配置,不过要注意libvirt创建的virbr0默认可能不受NetworkManager托管,所以用nmcli命令操作更可靠:

  1. 先确认virbr0对应的NetworkManager连接名:
    nmcli con show
    
    找到名称包含virbr0的连接,一般就叫virbr0。
  2. 给该连接添加静态路由:
    nmcli con mod virbr0 +ipv4.routes "10.95.212.0/24 192.168.122.128"
    
  3. 重新加载连接让配置生效:
    nmcli con up virbr0
    
    这个配置会被存在NetworkManager的配置文件里,重启系统后依然有效。

如果你之前用nmtui没成功,大概率是没找到正确的virbr0连接,或者在添加路由后没有保存并重新激活连接。

方案三:通过Netplan配置(Ubuntu原生网络配置工具)

Ubuntu 24.04默认用Netplan管理网络,你也可以直接编辑Netplan的配置文件来添加路由:

  1. 找到Netplan的主配置文件,一般在/etc/netplan/目录下,文件名类似00-installer-config.yaml或者01-network-manager-all.yaml。
  2. 编辑该文件,在bridges部分找到virbr0的配置(如果没有,就手动添加),加入路由信息:
    示例配置:
    network:
      version: 2
      ethernets:
        # 这里是你的物理网卡配置,保持不变即可
        enp0s3:
          dhcp4: true
      bridges:
        virbr0:
          addresses: [192.168.122.1/24]
          routes:
            - to: 10.95.212.0/24
              via: 192.168.122.128
          parameters:
            stp: true
            forward-delay: 4
    
  3. 应用配置:
    sudo netplan apply
    
  4. 验证路由是否生效:执行ip route show查看路由条目。
    这个方法的好处是完全用Ubuntu原生的工具管理,和系统的网络配置生态一致。

备注:内容来源于stack exchange,提问作者Thomas P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:33:10