virbr0是Linux服务器上由libvirt虚拟化组件自动创建的虚拟网桥,默认IP为192.168.122.1/24,主要让KVM虚拟机通过NAT方式共享宿主机网络上网;它不是物理网卡,删除前必须确认没有虚拟机依赖它。
virbr0是什么网卡?它在服务器IP配置中代表什么
很多运维第一次在服务器上执行ip addr时,会看到一块名为virbr0的网卡,还带了一个192.168.122.1的地址,这不是硬件故障,也不是系统被入侵。
virbr0本质是一块虚拟网桥,它由libvirt服务在安装KVM虚拟化组件后自动生成,网桥可以理解成二层交换机,只不过它是用软件模拟出来的,物理网卡负责把数据包发到外部网络,virbr0负责把宿主机上的多台虚拟机连接到一个内部局域网。
- 它有一个固定默认地址:192.168.122.1
- 子网掩码:255.255.255.0
- 状态通常显示为
UP,但没有物理连接线 - 它不直接对应任何PCIe或USB物理设备
- 每次重启libvirt服务后会自动恢复
如果你看到的服务器IP是类似192.168.122.x,那说明这台机器正在跑KVM虚拟化,或者至少安装过libvirt相关包,virbr0对应的虚拟交换机叫default网络,libvirt通过dnsmasq为它提供DHCP和DNS服务,分配给虚拟机的IP通常是192.168.122.2到192.168.122.254之间。
virbr0和docker0区别是什么?两张虚拟网卡别搞混
不少人在装了Docker的服务器上同时看到virbr0和docker0,会误以为它们是同一个东西,其实两者承担的任务完全不同。
| 对比项 | virbr0 | docker0 |
|---|---|---|
| 创建者 | libvirt | Docker daemon |
| 默认网段 | 168.122.0/24 | 17.0.0/16 |
| 服务对象 | KVM/QEMU虚拟机 | Docker容器 |
| 网络模式 | NAT | NAT(默认bridge模式) |
| DHCP服务 | dnsmasq | Docker内置IPAM |
| 可否删除 | 可删除或禁用 | 删除Docker时自动消失 |
从表里可以看出,virbr0和docker0都是虚拟网桥,都做NAT,但归属不同,行业共识认为,将虚拟机网络与容器网络隔离成两个独立网段,能减少IP冲突和端口映射混乱,也方便排查问题。

如果你发现两个网桥网段冲突,可以通过修改virbr0的default网络配置,或者自定义docker的bip参数来错开地址,一般不建议让它们复用同一个网段。
virbr0可以删除吗?服务器virbr0怎么关闭
很多用户担心virbr0占用IP或影响安全,想把它彻底关掉,virbr0是可以删除的,但前提是当前没有运行中的虚拟机在使用default网络。
如果你只在宿主机上用Docker跑容器,根本不使用KVM虚拟机,那么关掉virbr0能减少一个监听端口,也让ip addr输出更清爽。
临时关闭virbr0
临时关闭只对本次运行生效,服务器重启或libvirt重启后会恢复。
sudo virsh net-destroy default
执行后,ip addr里virbr0会消失,与之相关的iptables NAT规则也会被清理。
永久禁用virbr0自动启动
如果不想让它每次开机都出现:
sudo virsh net-autostart default --disable
这条命令会取消default网络的自动启动标记,重启libvirt或宿主机后,virbr0不会自动创建。
彻底删除virbr0定义
如果确认以后完全不用KVM的NAT网络:
sudo virsh net-undefine default
net-undefine会把default网络的XML定义从libvirt中删除,下次安装或升级libvirt相关包时,它可能被重新创建。
只停用网卡不删除
也可以直接在系统中down掉这块网卡:
sudo ip link set virbr0 down
但libvirt服务重启后一般会自动拉起,所以不如用virsh命令来得彻底。
virbr0地址修改与固定IP配置场景
默认的192.168.122.1和公司内网网段冲突时,需要修改virbr0的地址,比如公司办公网段恰好也是192.168.122.0/24,虚拟机NAT网络就会和物理局域网混淆,导致路由异常。
修改virbr0的默认IP段
libvirt的default网络配置文件位于:
/etc/libvirt/qemu/networks/default.xml
或者通过virsh编辑:
sudo virsh net-edit default
将<ip address='192.168.122.1' netmask='255.255.255.0'>

中的地址改成不冲突网段,例如168.200.1。
修改后需要重启网络:
sudo virsh net-destroy default sudo virsh net-start default
重启后virbr0的IP会变成192.168.200.1,DHCP地址池也会跟着调整,已开机的虚拟机需要重新获取IP。
给虚拟机配置固定IP
在default网络下,如果想让某台虚拟机每次开机都拿到固定IP,可以在宿主机上编辑default网络,添加静态DHCP绑定:
sudo virsh net-edit default
在<dhcp>段内加入:
<host mac='52:54:00:aa:bb:cc' ip='192.168.122.50'/>
其中MAC地址要对应虚拟机的网卡MAC,保存后重启default网络,该虚拟机就会固定拿到192.168.122.50。
为什么virbr0没有流量但一直占着IP
virbr0在没有虚拟机运行时,确实不转发任何数据,但它仍然会占用宿主机的一个IP,这是libvirt的设计:default网络随时待命,等虚拟机接入,如果对安全要求高的服务器,建议直接禁用或删除,减少攻击面。
运维场景中virbr0的常见问题定位
当服务器网络出现异常时,virbr0有时会被误判为故障源,以下场景可以帮助快速定位。
- 执行
ip route发现多了一条192.168.122.0/24路由:这是virbr0网段的直连路由,正常情况下不会影响外网访问,但如果目标地址刚好落在这个网段,且内部没有对应主机,就会出现超时。 - 防火墙规则多出大量virbr0相关条目:libvirt会自动向iptables插入NAT和forward规则,有些安全扫描工具会把这些标记为风险,需要结合实际情况判断。
- traceroute外网时第一跳是192.168.122.1:这通常说明你在从虚拟机内部发起追踪,而不是宿主机,从宿主机追踪外网不会经过virbr0。
- DNS解析异常:libvirt自带的dnsmasq默认监听在192.168.122.1的53端口,可能和宿主机其他DNS服务产生端口冲突,查看
ss -tulnp | grep :53可以确认。
近年来的服务器部署中,云主机和容器化场景增多,物理机上直接跑KVM的情况变少,但在虚拟化教学、本地开发测试和部分企业私有云环境里,virbr0仍然很常见,据行业公开资料显示,多数Linux发行版只要选择安装虚拟化主机角色,virbr0基本都会被自动创建。

业内专家指出,理解virbr0对排查虚拟化网络问题非常重要,尤其是NAT模式下虚拟机可以出网但宿主机外部无法主动访问虚拟机这一特性,就是由virbr0背后的iptables规则决定的。
virbr0和物理网卡可以桥接吗
可以,virbr0本身是NAT模式的虚拟交换机,如果希望虚拟机和宿主机处于同一个二层网络,获取与物理网卡相同网段的IP,就需要创建桥接网络,而不是使用virbr0。
通常做法是:
- 在宿主机上创建Linux bridge,比如br0
- 将物理网卡eth0或enp3s0加入br0
- 在libvirt中定义一个新的网络,forward模式选择
bridge - 虚拟机网卡指定到br0
这样虚拟机就像一台独立设备接入了办公交换机,不需要virbr0做NAT转换,但桥接模式需要网络管理员允许,并且在某些云环境中无法直接使用。
Q&A:服务器IP中virbr0是什么相关疑问
virbr0是什么网卡可以卸载吗
virbr0不是独立安装的网卡驱动,而是libvirt创建的虚拟设备,卸载libvirt相关包后,virbr0通常会消失,但单独“卸载”virbr0并没有对应的驱动名称,只能通过virsh命令删除或禁用default网络。
服务器virbr0怎么关闭才不影响其他服务
先确认没有KVM虚拟机在运行,然后执行sudo virsh net-destroy default和sudo virsh net-autostart default --disable,这两步能关闭当前网络并阻止开机自启,完全不影响Docker、Nginx、MySQL等其他服务,如果同时跑容器,注意不要误删docker0。
virbr0和docker0区别是什么
virbr0由libvirt创建,默认IP 192.168.122.1,服务KVM虚拟机,docker0由Docker创建,默认IP 172.17.0.1,服务容器,两者都是虚拟网桥,都是NAT出口,但归属的软件系统不同,网段规划也不同,多数情况下它们可以在同一台宿主机上共存,只需避免网段重叠。
理解virbr0后,再看到服务器IP配置里的192.168.122.1,就不会把它当成异常入侵或多余进程,它只是虚拟化工具在宿主机上预留的一个NAT网关,用对场景能简化虚拟机上网,用不上就关掉。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/812698.html


评论列表(3条)
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于网络的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于网络的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
读了这篇文章,我深有感触。作者对网络的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!