树莓派和虚拟机组网出现的问题及解决思路

警告
本文最后更新于 2019-09-06,文中内容可能已过时。

小米随身WiFi拥有两种模式,网卡模式可以令电脑搜索并接入其它的WiFi,AP模式可以开启一个WiFi供别的设备加入。现在拥有一台主机,插在上面的小米随身WiFi开启了热点模式,网关地址为192.168.191.1。另外还有两台树莓派,静态ip分别设置为了192.168.191.2和192.168..191.3。主机中利用VMware建立了一个虚拟机,系统为Ubuntu18.04。现在,虚拟机中的系统(之后简称为虚拟机)需要和两块树莓派联通。拓扑结构如下:

在NAT模式下对虚拟机设置了静态ip,但这种情况测试网络时发现虚拟机可以ping通两个树莓派,树莓派无法ping通Ubuntu,经过思考发现NAT模式下虚拟机所在网段和树莓派所在网段不是同一个,虚拟机共享了主机的网络,但树莓派处于AP热点网络下,无法访问。

将NAT模式改为桥接模式,虚拟机桥接到作为AP热点的小米随身WiFi上。但经试验无法联通,主要是因为桥接的本质是将虚拟机视为和主机在同一网络下的实体设备,桥接的对象也是拥有自己ip的终端设备,而小米随身WiFi此时处于AP模式,类似于路由器,只存在网关地址。理解了这个之后,转而将虚拟机桥接到有线网卡上,但有线网卡所在的实验室局域网和AP热点的局域网存在隔离,无法联通。

转而直接由虚拟机开启AP热点(安装驱动,利用create_ap开启AP热点),如果树莓派可以访问虚拟机,就能实现互通,经实验并不可以,是因为在AP模式下,小米随身WiFi仍然是路由器状态,虚拟机在网络上的ip取决于其有线网卡,然而有线网卡的地址仍然是实验室局域网ip,和树莓派不互通。

手机开启热点,主机上的随身WiFI切换回无线网卡模式,主机和树莓派都接入手机开启的热点网络。这种情况可以互通,但由于无法对手机热点的网段进行设置,从而无法设定各设备的静态ip。

主机利用随身WiFi开启热点,树莓派和另外一台笔记本电脑接入热点网络,笔记本电脑中开启两个Ubuntu18.04的虚拟机,每个都桥接到热点网络上。这种办法没有试验,一是主机电脑将会陷入闲置,而笔记本电脑的负载将加大。二是太麻烦了,此时打算直接用路由器开局域网让所有设备接入。

找同学借了一个水星MW306R的路由器,开了个局域网,默认网关是192.168.1.1,因为树莓派的静态ip已经设好了,不想动,于是把路由器的网关改成了192.168.191.1,然后树莓派,主机,笔记本都接到路由器的网络,主机和笔记本电脑各开一个虚拟机,虚拟机桥接到无线网络上,从而实现了互通。

支付宝
微信
0%