如何在Linux中安装并配置KVM虚拟网桥 Linux设置虚拟机联网的方法

轻枫姑娘_6422

轻枫姑娘_6422

2026-05-30

574人浏览

原创

linux上kvm虚拟机直连物理网络必须手动创建linux网桥(如br0)并绑定物理网卡,禁用virbr0;因virbr0是nat网桥、不连物理网卡、仅提供192.168.122.x私网地址且含snat规则,无法实现外网直连,误配会导致宿主机断网或虚拟机不可达。

如何在linux中安装并配置kvm虚拟网桥 linux设置虚拟机联网的方法

Linux 上 KVM 虚拟机要直连物理网络,**必须手动创建 Linux 网桥(如 br0)并绑定物理网卡,不能复用 libvirt 默认的 virbr0**。配错一步,虚拟机就上不了网,宿主机还可能 SSH 断连。

为什么 virbr0 不能当桥接用

virbr0 是 libvirt 自动创建的 NAT 网桥,自带 dnsmasq 和 iptables SNAT 规则,只提供 192.168.122.x 私网地址。它不连接任何物理网卡,根本不是桥接——外网无法直连虚拟机,宿主机也拿不到真实局域网 IP。

常见误操作及后果:

  • 直接给 virbr0 添加物理口(如 brctl addif virbr0 ens33):报错 Device or resource busy 或导致宿主机丢包
  • 修改 virbr0 的 IP 并设为 192.168.1.100:路由混乱,SSH 会突然中断
  • 查证方式:brctl show 输出中,virbr0 下没有物理接口名(如 ens33 或 enp0s3)

手动建桥三步不能少(ip + brctl 方式)

这是最底层、最可控的方式,适合脚本部署或快速验证。注意顺序和依赖:

  • 先清空物理网卡 IP:ip addr flush dev ens33(否则 addif 会失败)
  • 再建桥并启用:ip link add name br0 type bridge → ip link set br0 up
  • 把物理口加进去:ip link set ens33 master br0 → ip link set ens33 up
  • 最后给 br0 配 IP(宿主机管理用):ip addr add 192.168.1.100/24 dev br0
  • 关键遗漏点:物理网卡(ens33)自身不能再配 IP,否则与 br0 冲突;配置文件中要删掉 IPADDR、GATEWAY,只留 BRIDGE=br0 和 ONBOOT=yes

RHEL/CentOS 用 nmcli 更稳,但顺序不能错

NetworkManager 在桌面或混合环境中更可靠,但若旧连接没删干净,它会反复抢回物理口控制权,导致桥接失效。

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 先删旧连接:nmcli con delete ens33(不是 down,是彻底删除)
  • 再建桥主连接:nmcli con add type bridge con-name br0 ifname br0
  • 配桥参数(DHCP 示例):nmcli con modify br0 ipv4.method auto
  • 加从属口:nmcli con add type bridge-slave con-name br0-slave-ens33 ifname ens33 master br0
  • 启用:nmcli con up br0
  • 验证:nmcli device show br0 应显示 GENERAL.STATE: activated,且 bridge-slave-ens33 状态为 connected

虚拟机启动时指定桥接,别漏了 <source bridge="br0"></source>

libvirt XML 配置里,网卡段必须明确指向你新建的桥,而不是默认的 virbr0。否则即使桥建好了,虚拟机还是走 NAT。

示例片段(编辑 virsh edit vm01):

<interface type="bridge"><source bridge="br0"></source><model type="virtio"></model></interface>

常见错误:

  • 写成 <source network="default"></source>:仍走 virbr0
  • 忘记重启虚拟机:virsh destroy vm01 && virsh start vm01,热插拔网卡不生效
  • 虚拟机内没配同网段 IP(如宿主机是 192.168.1.100/24,虚拟机就得设 192.168.1.101/24 并指定网关)

最易被忽略的是物理网卡是否真的“脱离”了 IP 管理——哪怕只剩一个 inet6 fe80::/64,也可能干扰桥接转发。执行 ip -br addr show ens33,确认输出里只有 UP 状态,没有 inet 行。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux 虚拟机

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3990

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2573

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6270

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5922

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3453

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2945

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3179

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习