千家信息网

Linux中bridge如何桥接两个VirtualBox虚拟网络

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关Linux中bridge如何桥接两个VirtualBox虚拟网络,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先是磁盘空间不够用,配发的
千家信息网最后更新 2026年10月31日Linux中bridge如何桥接两个VirtualBox虚拟网络

这篇文章将为大家详细讲解有关Linux中bridge如何桥接两个VirtualBox虚拟网络,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

先是磁盘空间不够用,配发的电脑仅仅剩余12G的空间,不能外接硬盘,暂时也不能上传备份,相当于一台离线的机器吧。我却要完整编译一个4.19版本的Linux内核…于是没日没夜的,我开始人肉压缩再释放的操作,不得开心颜。最终我还是搞定了问题,不过这个磁盘空间问题解决得不算优雅,至少它无法让人觉得我在炫技。

和针对磁盘空间的抱怨相比,下面的问题就有点意思了。

使用虚拟机搭建网络测试环境总是会遇到各种奇葩的问题,这往往是各种虚拟机平台的缺陷所致。(也许我理解狭隘,但在我看来阻碍工作的机制就是缺陷)

虚拟网络毕竟不是真实的,网络技术发展40余年,一个软件想通过覆盖全面的测试几乎是不可能的,设计考虑不周全也是正常现象。

比方说用VirtualBox虚拟机搭建满足如下需求的测试环境:

我需要一台Linux主机作为网桥桥接两个网络。(我需要中间设置些规则又不想走路由)

很简单是不是?你试过吗?

想法非常直接且简单。类似VMWare的Lan Segment,VirtualBox有一种虚拟网络叫做Internal Network,说白了就是帮你摸你一个内部的私有网络。

主机B作为Bridge,网卡配置如下:

作为Bridge桥接两个网络的两台主机,Linux系统做如下配置:

brctl addbr br0;brctl addif br0 enp0s9;brctl addif br0 enp0s10;ifconfig br0 up;

主机H1的enp0s9设置为Internal模式,接入intnet:


H1的Linux系统配置如下:

ifconfig enp0s9 40.40.40.201/24

主机H2的enp0s9设置为Internel模式,接入intnet2:


H2的Linux系统配置如下:

ifconfig enp0s9 40.40.40.100/24

你觉得H1和H2互相ping对方的地址,能通吗?

试过就知道,不行!

迄至2019年11月8日,6.0.14是最新的了:

是的,不行!

我先解释Why,再来演示How。

那么,Why?

和VMWare的LAN Segment内部有一个 虚拟学习型交换机(早期是广播式Hub) 不同, VirtualBox的Internal Network内部的交换机不是学习型的,而是注册型的!

所谓的注册型交换机就是,只有注册过的Mac地址,该交换机才会帮你转发!这类交换机只有两种转发策略:

对于广播帧,所有的端口都发一份。对于单播帧,仅向注册该目标Mac地址的端口发送。

很显然,猜测其内部是有一张表的:

注册端口Mac地址
P1Mac1
P2Mac2
……

那么交换机是如何注册Mac地址的呢?或者说,从哪里可以看到一个虚拟机的一个网卡注册了哪个Mac呢?

请看"虚拟机->设置->网络":

每激活一块网卡,展开下面的Advanced就是该网卡的注册Mac地址。

上面的实验不通的原因现在很明确了。H1 ping H2时,经由Linux Bridge,ARP请求可以广播到H2,此时H2收到的ARP广播中,源MAC自然是H1的MAC地址,当H2回复ARP Reply时,目标MAC为H1的MAC地址,而H1的MAC地址没有注册在intnet2的虚拟交换机中,所以intnet2的交换机不会转发这个帧。 所以自然就不通咯!

好了,接下来,我来打通其任督二脉,让它通!是演示How的时候了。

只需要三步:

  • 将intnet上H1的MAC地址注册在Linux Bridge的intnet2网卡enp0s10。

  • 将intnet2上H2的MAC地址注册在Linux Bridge的intnet网卡enp0s9。

  • Linux Bridge主机起来后,通过ifconfig命令将其enp0s9,enp0s10网卡的MAC改成别的。

我来分别演示具体如何做。

我们看到网卡配置界面貌似没有指定MAC地址的选项,只有一个随机生成MAC的按钮:


怎么办?

用命令行啊!

我们使用VBoxManage命令指定特定网卡的MAC地址,如下所示:

zhaoyadeMacBook-Pro:~ $ VBoxManage modifyvm "ubuntu new" --macaddress4 0800279ff0e6zhaoyadeMacBook-Pro:~ $ VBoxManage modifyvm "ubuntu new" --macaddress3 080027bb3d67

以上的 0800279ff0e6 是H1 enp0s9的MAC地址,而 080027bb3d67 则是H2 enp0s9的MAC地址,从它们的网络配置界面可以看到:

OK,现在启动Linux Bridge机器,完成第三步,之所以需要这一步,是防止地址冲突导致Bridge的转发表中毒:

  • 0800279ff0e6可以从H1的intnet学习到。

  • 0800279ff0e6被配置在自己的enp0s10上。

懵圈了不是?所以必须把Linux Bridge的enp0s9,enp0s10这两个网卡的MAC改成别的,而这个修改动作VirtualBox的Internal Network交换机并不知道(只有新的网卡激活或者重新注册新的MAC会改变转发表,即点击那个小按钮或者执行VBoxManage命令改变MAC地址),所以并不影响其转发表。

好了,让我们行动:

ifconfig enp0s9 hw ether 08:00:27:bb:3d:68ifconfig enp0s10 hw ether 08:00:27:9f:f0:e7

OK,所有步骤做完,让我们测试:

brctl addbr br0;brctl addif br0 enp0s9;brctl addif br0 enp0s10;ifconfig br0 up;

再次ping一下?


这不就通了嘛…

事实上,HostOnly模式的桥接与Intenal Network类似,也有这样的问题,也是一样的解决方法。

我不知道这个无法桥接两个网络的问题是VirtualBox有意为之还是说它真的是一个实现上的缺陷,但我是真的在实际工作当中遇到了这个需求,所以在我个人看来,它就是缺陷!这一点明显不如VMWare的LAN Segment。

又或者说,VirtualBox仅仅在Mac OS上有这个问题?在Windows上好好的?也说不准,离开Windows平台已经快两年了。

这个问题解决了快一天。

一开始,我觉得是我的brctl配置问题,这么显然的一个操作,咋就不通呢…百思不得其解,我是使用HostOnly做实验的,后来通过抓包发现,H1的返回包直接返回到了Mac OS宿主机的vboxnet1网卡上的,而vboxnet1并没有向Linux Bridge转发这个包,先是怀疑是VirtualBox的一个BUG,重启系统无果后,我大致就猜出什么意思了。至于说什么 "注册型交换机" 这种词,都是我瞎猜自造的,不管怎么说,八九不离十吧,并且我显然跟随这问题解决了它。

好久没有遭遇这类问题了,不过我还是比较喜欢并且善于解这种疑难杂症的,个人不是很擅长写常规知识的教程,但对于这种平时大家不怎么遇到的怪问题,我这里自有妙药。

在找到答案之前,我也Google了很久,查找VirtualBox上对应LAN Segment的东西,并且查找Internal Network和LAN Segment的区别,我甚至想找一个Mac OS上的Virtual Switch来用,自己营造一个虚拟并真实的以太网…如果真的找不到,那就只能DIY一个了。

关于"Linux中bridge如何桥接两个VirtualBox虚拟网络"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

地址 网络 网卡 问题 交换机 配置 两个 主机 就是 只有 命令 空间 系统 缺陷 广播 测试 模式 磁盘 端口 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 湖南永感互联网科技有限公司 万易互联网科技 互联网科技媒体 善班互联网科技有限公司 上海卓越科技 互联网 四个字互联网科技公司取名 广西拼得多互联网科技有限公司 广州优美互联网科技 互联网系的金融科技公司 滨湖区互联网智能科技产品有哪些 小米互联网科技园入驻 江苏苏星互联网科技有限公司 互联网科技实习生岗位 互联网科技年终奖 福州德业互联网科技 互联网科技和医药行业 绵阳真晨互联网科技有限公司 网互联网络科技 武汉亿视互联网科技有限公司 上海喔噻互联网科技有限公司 厦门中拓互联网络科技有限公司 互联网 科技服务平台 知域互联网科技有限公司大骗子 科技互联网的核心竞争力 互联网公司高科技产品 银行科技岗属于互联网吗 中国互联网公司的科技投入 北京军民互联网科技公司 小牛互联网科技有限公司地址
0