【无标题】

群晖中搭建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环境中就可以连接,这部分很奇怪,但是终究还是解决问题了,所以暂时不管了

相关推荐
承渊政道1 天前
飞牛NAS部署Immich:搭建家庭相册并实现远程访问
运维·服务器·docker·内网穿透·cpolar·nas·immich
杨浦老苏3 天前
开源堡垒机 Warpgate:一个容器搞定 SSH、MySQL 和 Web 访问
运维·docker·ssh·堡垒机·群晖
慧都小妮子5 天前
ThingsBoard PE 智慧灌溉:实现精准灌溉与水资源优化利用
物联网·mqtt·智慧农业·iot·规则引擎·thingsboard·精准灌溉
GoFly开发者5 天前
GoFly 社区 GMQT|国产自研 MQTT‑Broker,打造私有化物联网消息底座
物联网·mqtt·golang·mqtt broker·mqtt私有化部署
星野云联AIoT技术洞察12 天前
MQTT Sparkplug B 和自定义 Topic 体系应该怎么选
mqtt·数据建模·边缘网关·sparkplug b·工业iot
java_logo12 天前
Docker 部署 EMQX:轻松搭建物联网 MQTT 消息平台
物联网·mqtt·docker·容器·emqx·轩辕镜像·emqx部署教程
腾视科技AIoT18 天前
私有云时代来临:AI NAS如何重塑你的数字生活?
人工智能·ai·生活·nas·企业存储·ainas·家庭存储
記億揺晃着的那天20 天前
HTTPS 页面内网直连 NAS:解决 Mixed Content 与公网带宽瓶颈
网络协议·http·https·nas
記億揺晃着的那天23 天前
NAS + Tailscale + WebDAV:安全对接云服务器 Spring Boot
spring boot·tailscale·nas·webdav
molaifeng23 天前
深入 MQTT 协议底层:构建可靠物联网通信的关键机制
mqtt·iot