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连接蓝牙,就立即可以正常上网了,有些莫名其妙。

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

参考链接


发布者

《macOS Catalina(10.15.5)用蓝牙PAN共享Wi-Fi上网》上有3条评论

  1. 我用两台android手机测试,发现确实第一台连接的设备上不了网,第二台连接后可以上网,然后wireshare抓bluetooth PAN,不管能不能上网的设备,DHCP分配到的ip都是192.168.2.x,按你上面说的重启服务,重新连接也不行。
    1. 这个现象我也解释不了,只能说这最大的可能是系统的BUG,另外这样上网网速太慢了,后来也没怎么折腾了
      1. 并不是要通过这样的方式持续上网,是因为在某些场景特殊需要才这样选择的。感觉确实是苹果系统的bug,找苹果技术支持了,看下会怎么回应。

发表回复

您的电子邮箱地址不会被公开。