通过VNC远程桌面树莓派并打开树莓派终端
1. 安装docker容器并部署EMQX
sudo su //切换为root权限
apt-get update //更新软件版本
curl -sSL https://get.docker.com | sh //下载docker脚本
docker
docker pull emqx/emqx //在docker里创建名为emqx的容器
docker run -d --name emqx -p 18083:18083 -p 1883:1883 emqx/emqx:latest //运行emqx
docker start emqx //启动emqx服务
docker stop emqx //关闭emqx服务
2. 登录EMQX控制台
<你的树莓派IP地址>:18083
//例如树莓派IP地址是192.168.137.3
//18083是控制台端口
//则访问EMQX控制台的地址是 192.168.137.3:18083
2.1 控制台默认账户:admin
2.2 控制台默认密码:public
3. 访问局限
3.1 此时笔记本和树莓派是连接在同一局域网里的,这是可以实现局域网连接的,但如果第三个设
备不在同一个局域网下时,浏览器键入192.168.137.3:18083是无法访问的。
>>>如何解决在公网下访问局域网下的mqtt服务器呢?<<<
4. 优化连接(通过内网穿透工具来实现公网访问)
4.1 已知的内网穿透工具
4.1.1 cpolar: 免费但公网地址是随机的,影响后续访问
4.1.2 花生壳:貌似收费(不是很了解)
4.1.3 FRP: 需要自己有一个拥有公网IP的服务器
4.1.4: Ngron:免费且平台有一一个静态的域名资源(推荐)
5. 使用Ngrok作为内网穿透工具
https://ngrok.com/
5.1 此操作需要在pi@raspberrypi:~ $ 终端下进行【即打开树莓派终端时的界面】
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm64.tgz //下载压缩包
tar -xvzf ngrok-v3-stable-linux-arm64.tgz //解压这个压缩包获得ngrok文件
./ngrok config add-authtoken <你的令牌> //验证令牌
./ngrok http 18083 //开启内网穿透服务,穿透到局域网的18083端口,即emqx控制台
https://xxxxxxxxxxxx //获得访问内网网站,类型是动态的,会不定时更新
./ngrok http xxxxxxxxxxxx 18083 //获取ngrok内网穿透的静态ip
https://xxxxxxxxxxxxxxxxxxx //获取到访问内网的静态网站
5.2 操作须知
5.2.1 登录ngrok注册一个免费的账号(QQ邮箱不行,我用的是163邮箱)
5.2.2 令牌获取
https://dashboard.ngrok.com/
查看自己的令牌: