macOS Catalina(10.15.5)用蓝牙PAN共享Wi-Fi上网

今天有需要共享上网进行抓包分析报文的情况。

研究了一下MacBook Pro(macOS Catalina(10.15.5))如何通过蓝牙PAN(Bluetooth PAN)来共享笔记本连接的Wi-Fi网络出来,让手机通过共享出来的蓝牙热点来上网的方法。

由于蓝牙PAN(Bluetooth PAN)本质属于局域网转发,起到一个简单网关的作用。因此我们需要设置蓝牙设备的IP地址跟需要共享的Wi-Fi网卡相同。

具体操作如下:

1. 记录需要共享的Wi-Fi网络的IP、网关

2. 配置蓝牙设备网络的IP、网关

3. 配置开启蓝牙共享

4. 手机完成蓝牙配对之后,开启 互联网访问功能

如果上述配置之后,还是不能上网,则尝试进行WireShark抓包,主要观察DHCP协议部分,如下图:

从上图可以看到,某个服务响应了来自小米手机的DHCP请求,并且回复了一个192.168.2.3的地址给手机。显然这个地址是没办法让手机上网的。

我们查询响应这个网络报文的应用信息:

可以看到一个名为bootps的应用在67端口上进行了侦听,并且响应了这个请求。

这个是网络共享创建的默认的DHCP服务器(参考下面的"_creator"字段),配置文件信息如下:

网上介绍都是需要修改这里面的配置,然后重启。其实本质原因是配置信息没有更新到系统,完全不需要修改配置文件。只需要重新启动一下服务即可,如下:

操作之后,需要断开蓝牙,重新连接。

目前测试发现,Honor 30/Android 10.0.0,MI NOTE LTE/Android 6.0.1,HonorV8/Android 8.0.0 都不能立即正常上网,需要折腾好几次才可能能用。

但是有时候先让Honor 30/Android 10.0.0连接成功之后,再让MI NOTE LTE/Android 6.0.1,HonorV8/Android 8.0.0连接蓝牙,就立即可以正常上网了,有些莫名其妙。

有时候多个设备同时连接的情况下,第一个设备不能正常上网,后面连接的设备都可以,再次断开第一个重新连接,又都正常了。感觉还是协议栈不够稳定。

参考链接


发布者