首页 文章

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

提问于
浏览
1

我打算创建一个非常简单的家庭\办公室监控系统,在那里我将能够使用Raspberry Pi上的Mosquitto代理连接传感器 . 传感器将数据发布到代理,我将能够将数据视为订户 .

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

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

2 回答

  • 3

    有点取决于您的家庭网络 . 如果您的ISP使用所谓的“Carrier Grade NAT”,由于现在可用的IPv4地址很少,这种情况越来越普遍,您无法从Internet连接到本地网络 .

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

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

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

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

    In either case, do not forget that any traffic over the Internet is insecure. You will need to set up SSL certificates along with a username/password combination to secure the traffic.

  • 1

    简单!

    • 只需将端口转发(在本地路由器192.168.x.x中)添加到raspberrPi ip和MQTT(通常是端口1883) .

    • 然后您的传感器应连接到互联网并将主题/有效负载发送到您家中的公共IP地址...

    我为Android应用程序执行此操作 - owntrack - juiceSSH - raspicheck - myMQTT - openHAB - Yatse(适用于Kodi远程)

    但是不要忘记当你打开一个端口时,你需要确保它以某种方式访问它...并且你的公共i.p.可以由您的ISP自动更改(InternetServiceProvider)

相关问题