KVM虚拟机桥接网络,虚拟机获取独立公网IP

KVM虚拟机默认使用NAT网络,虚拟机只能通过宿主机上网,外部无法直接访问。
如果你需要让虚拟机拥有独立公网IP,比如搭建对外服务或模拟真实服务器环境,桥接网络是常用方案。
本文从零开始,教你配置KVM桥接网络,让虚拟机直接获取公网IP。

准备工作:检查宿主机网络与权限

在操作前,确认宿主机满足以下条件:

  • 宿主机有一块物理网卡(如 eth0 或 eno1),且已连接网络,能正常上网。
  • 拥有宿主机 root 权限或可执行 sudo。
  • 已安装 bridge-utils 工具,用于管理网桥。若未安装,执行:
# CentOS/RHEL
sudo yum install bridge-utils -y
# Ubuntu/Debian
sudo apt install bridge-utils -y
  • 确认宿主机网络配置方式:如果是 NetworkManager 管理,建议改用 network-scripts 或 systemd-networkd 以避免冲突。本文以 network-scripts 为例。

重要: 修改网络配置可能导致宿主机断网,建议在本地控制台或带外管理下操作,不要仅依赖SSH。

创建网桥并绑定物理网卡

桥接网络的核心是创建一个虚拟网桥,将物理网卡“桥接”进去,虚拟机再连接到网桥,从而与物理网络互通。

  1. 备份当前网络配置:
sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak
  1. 修改物理网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0,将其设为网桥的从属接口:
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
  1. 创建网桥配置文件 /etc/sysconfig/network-scripts/ifcfg-br0,内容如下(根据你的公网IP信息填写):
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=你的公网IP
NETMASK=你的子网掩码
GATEWAY=你的网关
DNS1=8.8.8.8
  1. 重启网络服务使配置生效:
sudo systemctl restart network

验证: 执行 ip addr show br0,应看到网桥已启动并绑定了IP;brctl show 应显示 eth0 已加入 br0。

调整虚拟机网络设置

虚拟机需要连接到网桥,而不是默认的虚拟网络。
根据虚拟机是否已创建,有两种方式:

新建虚拟机时: 在 virt-install 命令中指定 --network bridge=br0。

已有虚拟机: 编辑虚拟机XML配置文件。

  1. 查看虚拟机名称:
sudo virsh list --all
  1. 编辑XML(将 vm-name 替换为你的虚拟机名称):
sudo virsh edit vm-name
  1. 找到 部分,修改为:

  
  

保存退出后,重启虚拟机:

sudo virsh destroy vm-name
sudo virsh start vm-name

避坑指南:常见问题与解决

  • 宿主机断网: 如果修改后宿主机无法上网,检查网桥配置文件是否写错IP、网关或DNS。可通过 ip route 查看默认路由是否正确指向网关。
  • 虚拟机无法获取IP: 确保虚拟机内部网卡配置为DHCP或手动设置了与宿主机同网段的公网IP。如果使用DHCP,需网络中有DHCP服务器。
  • 网桥未生效: 某些系统需关闭NetworkManager,改用network服务:systemctl stop NetworkManager && systemctl disable NetworkManager。
  • 防火墙或SELinux: 临时关闭测试:systemctl stop firewalld 和 setenforce 0,若问题解决再逐步放行规则。

验证虚拟机公网连通性

在虚拟机内执行:

ip addr show
ping -c 4 8.8.8.8
curl ifconfig.me

若 ping 通且 curl 返回公网IP,说明桥接成功。
从外部网络尝试SSH连接虚拟机IP,能登录即表示独立公网IP生效。

注意: 如果公网IP由云服务商分配,需确保网卡MAC地址与IP绑定关系正确,必要时在控制台更新。

常见疑问

Q:桥接后宿主机和虚拟机能否互相访问?
可以,它们在同一网桥下,如同连接同一交换机,可互相通信。

Q:一个网桥可以连接多台虚拟机吗?
可以,多台虚拟机连接到同一网桥,各自获取独立IP,互不干扰。

Q:无线网卡能否做桥接?
通常不支持,无线驱动限制较多,建议使用有线网卡。

按照以上步骤操作,你应该能让KVM虚拟机获得独立公网IP。
如果遇到问题,优先检查网桥状态和防火墙规则,多数故障可快速定位。

分享到:
上一篇
Docker compose多容器编排搭建CMS全套环境
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意