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

Ahm*_*dad 3 mqtt raspbian mosquitto raspberry-pi2

我计划创建一个非常简单的家庭\办公室监控系统,我将能够在 Raspberry Pi 上使用 Mosquitto 代理连接传感器。传感器将向经纪人发布数据,我将能够作为订阅者查看这些数据。

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

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

Jul*_*ght 5

在某种程度上取决于您的家庭网络。如果您的 ISP 使用所谓的“运营商级 NAT ”(由于现在可用的 IPv4 地址很少),这种方式越来越普遍,您将无法从 Internet 建立到本地网络的连接。

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

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

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

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

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

  • 乐意效劳。请注意,延迟对于 MQ 系统来说不是问题,无论如何您都不希望它们是即时的。 (3认同)
  • 我不会使用测试服务器,因为它们可能并不总是有效。有公共 MQTT 服务,但有免费计划。非常适合您不太担心安全的休闲活动。例如 CloudMQTT 或 ThingMQ。 (2认同)