必须配置linux桥接网络,核心是将物理网卡交予网桥作为二层端口、ip配在网桥上而非物理网卡;需先清空物理网卡ip、创建启用br0、绑定网卡并配同网段地址,再按发行版持久化配置,最后验证网桥状态、ip分配及三层连通性。

要让虚拟机直接接入物理局域网、获得独立 IP 并与宿主机平级通信,必须配置 Linux 桥接网络。核心是把物理网卡“交”给网桥,自身退为二层端口,再把 IP 地址配到网桥上——不是物理网卡上。
确认物理网卡并清空原有 IP
桥接前,物理网卡(如 enp0s3 或 eth0)不能持有任何 IP 地址,否则会和网桥冲突,导致 ARP 混乱或无法通信。
- 查网卡名:
ip -br link show | grep UP - 清空 IP:
sudo ip addr flush dev enp0s3 - 确保接口启用:
sudo ip link set enp0s3 up
创建并启用网桥接口
网桥(如 br0)是虚拟交换机,需手动创建、绑定物理网卡,并分配原属该网卡的 IP。
- 加载内核模块:
sudo modprobe bridge - 新建网桥:
sudo ip link add name br0 type bridge - 绑定物理网卡:
sudo ip link set enp0s3 master br0 - 启用网桥:
sudo ip link set br0 up - 配 IP(与物理网络同网段):
sudo ip addr add 192.168.1.100/24 dev br0
按发行版选择持久化方式
临时命令重启即失效,生产环境必须写入配置文件。不同系统推荐不同方案:
-
Ubuntu 18.04+ / Debian 11+:用
/etc/netplan/*.yaml,bridges下定义interfaces: [enp0s3],addresses写在br0节点下 -
RHEL/CentOS/Fedora:用
nmcli创建 bridge 连接,再添加 slave 设备;或写/etc/sysconfig/network-scripts/ifcfg-br0+ifcfg-enp0s3(后者只设BRIDGE=br0,不配 IP) -
Debian/旧版 Ubuntu:编辑
/etc/network/interfaces,用iface br0 inet static块,含bridge_ports enp0s3和bridge_stp off
验证与关键检查项
配置完成后,重点验证三层连通性与二层转发是否正常:
- 看网桥状态:
bridge link应显示enp0s3在br0下且state FORWARDING - 查 IP 分配:
ip a show br0必须有正确地址,enp0s3下不应出现inet - 测通路:
ping 192.168.1.1(网关)、ping 同网段物理机、curl -I https://baidu.com - 虚拟机里设置同网段静态 IP 或 DHCP,启动后应能直接 ping 通宿主机和外网











