KVM桥接网络配置,虚拟机直接获取公网IP完整步骤

KVM 桥接网络配置的作用是让虚拟机直接使用宿主机的物理网卡,从而和宿主机处于同一局域网,并在公网环境下直接获取公网 IP。
本文面向零基础用户,按实际执行顺序拆解完整步骤,包含桥接网卡创建、虚拟机配置和验证方法,照做即可完成部署。

配置前需要准备什么

整个操作需要一台安装好 KVM 的 Linux 宿主机,系统可以是 CentOS、Ubuntu 或 Debian。
宿主机必须有物理网卡(如 eth0enp3s0),并且确认你有一个空闲的 IP 地址供虚拟机使用。
执行以下命令查看当前网卡和 IP 信息:

ip addr show
ip route show

记录物理网卡名称、当前 IP、网关和 DNS。
后面配置桥接网卡时要复用这些参数。
另外,操作前建议通过控制台或物理终端连接宿主机,避免网络断连后无法恢复。

创建桥接网卡并绑定物理网卡

不同发行版的网络配置方式不同,这里分别给出 Debian/Ubuntu(netplan)和 CentOS(ifcfg)的写法。

Ubuntu/Debian 使用 netplan 时,编辑 /etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp3s0]
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

注意 enp3s0 换成你本机实际网卡名,IP 和网关按实际填写。
执行 sudo netplan apply 生效。

CentOS 7/8 使用 ifcfg 文件时,先给物理网卡创建备份,然后编辑 /etc/sysconfig/network-scripts/ifcfg-enp3s0

DEVICE=enp3s0
TYPE=Ethernet
BOOTPROTO=none
NM_CONTROLLED=no
BRIDGE=br0
ONBOOT=yes

再创建 /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DELAY=0
ONBOOT=yes

保存后执行 systemctl restart network 重启网络。
如果使用 NetworkManager,建议先停用再操作,否则桥接可能被覆盖。

创建虚拟机时指定桥接网卡

宿主机网络恢复正常后,确认桥接网卡已启用:

ip addr show br0

能看到你配置的 IP,说明桥接正常。
virt-managervirsh 创建虚拟机时,在虚拟网络设置中选择“桥接模式”,设备名称填 br0
命令行方式可以这样指定:

virt-install \
  --network bridge=br0 \
  --name vm-public \
  --memory 2048 \
  --vcpus 2 \
  --disk path=/var/lib/libvirt/images/vm-public.qcow2,size=20 \
  --os-variant centos7.0

如果虚拟机系统内使用 DHCP,开机后会自动从上层路由器获取 IP。
若需要静态 IP,则登录虚拟机后在系统内手动配置,地址要与宿主机同一网段,且不能冲突。

验证虚拟机是否拿到公网 IP

在虚拟机内执行:

ip addr show
ip route show

确认网卡上有公网 IP,且默认网关指向物理网关。
然后从外部 ping 该 IP,若通说明桥接成功。
也可以从虚拟机向外发起 ping:

ping -c 4 223.5.5.5

如果能通,说明虚拟机已经能够直接上网,公网对虚拟机为可达状态。

高频问题与避坑提醒

物理网卡配置了 IP 导致桥接失败:桥接模式下,物理网卡不能保留自己的 IP,必须把 IP 配置到 br0 上。
如果发现 br0 无 IP 或无法上网,优先检查是否仍然给物理网卡设置了 dhcp4BOOTPROTO

网卡名不一致:有些系统使用 ens33enp1s0,不要照抄教程里的名字,务必用 ip addr 查看实际名称。

云服务器环境:多数公有云底层不允许客户自定义桥接,即使配置成功也拿不到公网 IP,宿主机网络可能直接中断。
本地物理服务器或自建机柜环境下此方案才稳定。

防火墙干扰:虚拟机拿到公网 IP 后,如果外部访问不了,检查宿主机和虚拟机内 iptables 是否放行对应端口:

iptables -L -n

另外,如果 br0 创建后宿主机 DNS 异常,记得检查 resolv.conf 或 netplan 中的 nameserver 配置。

按以上步骤执行,KVM 虚拟机直接获取公网 IP 就能顺利落地。
实际操作时如果遇到网络断开,用控制台切回原配置即可回滚,建议先在测试环境演练一遍再对生产机操作。

分享到:
上一篇
systemd服务崩溃自动重启,Restart参数全套生产模
下一篇
Docker‑compose容器开机自启
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意