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

时间:2016-01-21 10:03:35

标签: raspbian mqtt raspberry-pi2 mosquitto

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

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

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

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

答案 1 :(得分:1)

容易!

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

我为Android应用程序执行此操作 - owntrack - juiceSSH - raspicheck - myMQTT - openHAB - Yatse(对于Kodi遥控器)

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