【无标题】

群晖中搭建mosquitto并配合樱花穿透Sakura_Frp使用wss协议在前端以及其他地方使用

这是一个比较简短的记录,只记录的核心步骤(请一行一行的仔细阅读)

前情提要:经过测试,樱花穿透貌似不能穿透ws协议的mqtt(ws://),但是使用mqtt本身的协议是可以使用的(mqtt://),而我的使用场景涉及到前端,所以我需要ws,但是在经过测试之后,只能穿透wss协议(wss://),所以在此之前,我们需要一个域名的证书;我的使用方法比较花哨,使用的是阿里云域名,记录类型选择CNAME然后映射到樱花自己的域名,证书使用的就是我阿里云的域名证书;当然,理论上来说,只要能拉到对应域名的证书,那直接用用樱花的也可以;不过群里的小伙伴描述说直接对tcp穿透应该也能用,但是我比较惯性思维,还是先穿透ws协议再说吧。

准备工作(缺一不可,认真重视):

  1. 一份阿里云域名或者樱花域名的证书文件(.crt和.key文件),并放在NAS的一个全英文的路径下(不确定中文行不行,尽量使用英文吧)

  2. 基本linux指令操作能力(包括但不限于cd、ls、vi等)

  3. 能够在群晖中熟练使用有樱花穿透服务,以及樱花穿透服务的基本使用

  4. 一个能够冷静分析问题和能够举一反三的脑子(现在ai那么发达,让deepseek当外置大脑也可以)

基本步骤:

  1. 在群晖中新增套件来源为矿神spk,位置url为 https://spk7.imnks.com

  2. 在社群中搜索Mosquitto,可以看到一个类似于wifi图标的套件,安装它

  3. 安装完成之后手动将其关闭,进入ssh进行设置

  4. 找到Mosquitto套件的安装位置(例:/var/packages/mosquitto/var),使用cd指令进入

  5. 在此路径下有一个mosquitto.conf文件,使用vi指令进行查看和编辑(vi mosquitto.conf)

  6. 找到listener那一行,默认的应该是 listener 1883 172.0.0.1 ,指的是当前的mqtt服务只能在本机使用,此处我们将上面的那一行改为 listener 1883 0.0.0.0 ,这样指的就是,在局域网内所有设备都可以访问,当然也只是局域网

    到这一步的时候可以先将这个文件先保存一下,然后在自己局域网内的windows电脑中,安装一个MQTTX进行最基础的mqtt协议连接测试(mqtt://),不出意外的话是可以成功连接的,注意:此时是没有账号密码的,这部分可以先不用管。

  7. 在这一行的下面写一行 listener 9002 0.0.0.0 ,这一行是wss协议的端口号;然后按下回车,紧跟着一行写 protocol websockets 表示使用ws协议;再紧跟着一行写 certfile [你的路径]/[证书名称].crt ;然后在回车一行写 keyfile [你的路径]/[证书名称].key ,这两个一个是证书一个是密钥,在修改完成之后,这部分的文件应该和下面的类似

    powershell 复制代码
    listener 1883 0.0.0.0
    
    listener 9002 0.0.0.0
    protocol websockets
    certfile [你的路径]/[证书名称].crt
    keyfile  [你的路径]/[证书名称].key

    其实在当前文件的其他地方是有专门写这个STL证书的位置的,但是算了,规范化的代价就是费时间,你可以在vi编辑器中使用:/指令进行文本查找来定位进行编写

  8. 权限设置,这一步比较关键,如果你把证书文件放在了其他文件夹内,而不是放在mosquitto套件文件夹内的话,就需要设置一下权限,假如将证书文件放在了一个名为 Sync 的共享文件夹内的话,就需要将 Sync 这个共享文件夹的权限向 sc-mosquitto 开放读取权限,这一步很关键,否则套件将无法启动

  9. 樱花穿透设置对9002端口穿透,群晖如何使用樱花穿透请自行搜索使用,如果需要使用mqtt协议的话,也可顺便对1883端口开放

  10. 在前端NodeJS中使用wss协议进行验证,不知道为什么MQTTX的wss协议进行测试时始终无法连接,但是在前端的NodeJS环境中就可以连接,这部分很奇怪,但是终究还是解决问题了,所以暂时不管了

相关推荐
星野云联AIoT技术洞察18 小时前
OPC UA、MQTT、Modbus 应该如何分层:工业 IoT 接入架构新思路
mqtt·modbus·opc ua·边缘网关·设备接入·协议分层·工业iot
EMQX18 小时前
S3 正在吞噬一切:AI 时代的基础软件架构革命
人工智能·物联网·mqtt·flowmq
不懂的浪漫19 小时前
mqtt-plus 架构解析(一):分层架构与设计哲学
spring boot·分布式·物联网·mqtt·架构
Z文的博客21 小时前
嵌入式 ARM 设备交叉编译 mosquitto 2.0.20 (完整 TLS 支持) 详细教程 TRAE全程辅助,没敲一行代码
qt·mqtt·嵌入式·ai编程·mosquitto·嵌入式linux·trae
芯智工坊3 天前
第13章 Mosquitto监控与日志管理
前端·网络·人工智能·mqtt·开源
杨浦老苏3 天前
轻量级RSS源处理中间件FeedCraft
人工智能·docker·ai·群晖·rss
芯智工坊4 天前
第10章 Mosquitto桥接模式
网络·数据库·人工智能·mqtt·开源·桥接模式
芯智工坊4 天前
第12章 Mosquitto插件与扩展机制
mqtt·网络协议·开源
德育处主任Pro5 天前
『NAS』在飞牛部署PDF全能工具-StirlingPDF
pdf·nas
杨浦老苏5 天前
开源宠物健康护理追踪器EinVault
docker·群晖·宠物·健康管理