通过互联网连接到安装在Raspberry Pi上的MQTT代理(Mosquitto)



我计划创建一个非常简单的家庭\办公室监控系统,在那里我将能够在Raspberry Pi上使用Mosquitto代理连接传感器。传感器将数据发布到代理,我将能够以订阅者的身份查看数据。

我有一个发布者定期向同一局域网网络中的Raspberry Pi(Mosquitto代理)发布消息。但是我想将位于我办公室的传感器连接到同一个代理,因此连接只能在线。

我目前面临的问题是我想将传感器连接到树莓派,但由于硬件的限制,我需要通过互联网进行。如何连接传感器以从 LAN 网络外部发布到驻留在树莓派中的代理?我刚刚检查过,我的公共 IP 地址下面可能有数千个地址,我怎么知道哪一个是我并连接到它?!

在某种程度上取决于您的家庭网络。如果您的ISP使用所谓的"运营商级NAT",由于现在可用的IPv4地址很少,因此越来越普遍,则无法从Internet连接到本地网络。

否则,您可以向内建立连接,因此您的远程传感器只需要 TCP/IP 连接。我们需要有关传感器的更多信息来向您展示如何做到这一点。若要查找公共 IP 地址,请从本地网络上的计算机访问 https://www.whatismyip.com/。(要了解您是否被运营商级 nat 卡住,请询问您的 ISP 或对您的公共 IP 地址进行反向查找,您可以分辨出来)。您还需要在路由器上配置防火墙,使其允许入站连接到您选择的端口(在外部),并将其映射到 Pi 的内部 IP 地址和 Mosquitto 上配置的用于处理 MQTT 流量的端口。

对于运营商级 NAT,或者如果您无法将路由器的防火墙配置为允许传入连接,则应在互联网上的某个地方使用另一个 MQTT 代理。然后将您的 Pi 代理配置为桥接到互联网代理。

Owntracks文档有一个快速教程。Mosquitto 文档中也有关于如何执行此操作的信息。

在这种情况下,您的 Pi 代理正在连接到互联网,如果您没有过度阻止传出流量,则在任何 WAN 上都可以正常工作。

无论哪种情况,都不要忘记互联网上的任何流量都是不安全的。您需要设置 SSL 证书以及用户名/密码组合以保护流量。

简单!

  • 只需将端口转发(在本地路由器 192.168.x.x 中)添加到您的 raspberrPi ip 和 MQTT(通常是端口 1883)即可。
  • 然后,您的传感器应连接到互联网,并将主题/有效载荷发送到您在家中的公共IP地址...

我为安卓应用程序这样做- 自己的轨道- 果汁- 拉斯皮切克- 我的MQTT- 开放HAB- 雅采(科迪远程)

但是不要忘记,当您打开端口时,您需要以某种方式保护它的访问......您的公共IP可以由您的ISP(互联网服务提供商)自动更改

最新更新