使用闲置手机搭配花生壳创建一个https服务器
背景
前段时间抽空做了一个本地网页,主要使用webBluetooth访问周围的低功耗蓝牙设备,在电脑可以运行,但在手机上无法运行。因为手机浏览器无法识别css,js等文件,它只会识别文件流数据。又由于webBluetooth的api安全限制,因此我需要一个https服务器。众所周知,申请一个正规的https服务器需要一点资金,但偶尔看到花生壳有一个https映射,然后看了相关文档,觉得有搞头!
思路
linux deploy + ubuntu + nginx + 花生壳
其中花生壳因为需要开通https映射,一次性付款6快大洋。
步骤
1. 手机安装linux deploy
https://github.com/meefik/linuxdeploy/releases
此处我下载2.6.0版本
1.1 配置
配置文件:命名ubuntu,方便记忆
右下角配置文件属性:
发行版:ubuntu
架构:arm64
发行版:bionic
源地址:http://mirrors.ustc.edu.cn/ubuntu-ports/
安装路径:${默认}/ubuntu.img
用户名及密码:自定义(ssh相关需要登陆)
其他默认开启就行,主要是把ssh开启
右上角三点:
点击安装
安装成功后,后续只需要点击《启动》《停止》就行了,不需要重新安装
1.2 ssh登录
使用MobaXterm进行ssh登录
填写手机的ip,以及自定义的用户名
填写密码即可登录
2. 安装及配置nginx
sudo apt-get install nginx #安装
which nginx #查看执行文件路径
sudo gedit /etc/nginx/sites-available/default # 打开配置文件
将root xxx的xxx改成自己的文件目录
目前是用nginx实现http服务器功能,再由花生壳映射成https。
sudo /usr/sbin/nginx # 开启服务器
此时局域网下,在浏览器里输入服务器ip,就会进入自己的网页页面
3 配置花生壳
https://hsk.oray.com/download
注册花生壳
https需要实名验证,并且支付6块钱
目前使用起来,需要花生壳管理app或花生壳内网app在线才行,猜测应该是通过这个app转发数据到内网的,因此不能杀掉app。
4 结果
http局域网访问
https外网访问
问题
- 内网穿透app如果经常上下线,app会提示频繁请求,无法登录。
- 不太稳定(基本白嫖的,没办法)
- 后续可以使用cpolar提供免费的http映射。
2023/10/21更新:
把网页代码上传到github,setting —> pages —> 选择分支,可以免费通过https浏览自建网页,对于我使用webBluetooth真的友好。
网页链接一般为:https://你的用户名.github.io/你的仓库名/index.html
优点:免手持拍照认证,有账号就可以使用。
缺点:国内网访问不稳定,可以用gitee但要自照。