我想将一些数据从 SIM808 发送到 MQTT 代理,该代理是安装在我的 Raspberry Pi 4 上的节点红色。
如何让节点红色在本地网络之外接收和发送 MQTT?
我看过很多教程,但它们都是关于购买第三方服务器主机的,我不想这样做。我已经通过本地网络使用 esp32 实现了 MQTT,但我不知道如何在本地网络之外做到这一点。
另外我想说的是,有人建议我使用 VPN。我决定安装 WireGuard,但不知为何它屏蔽了所有 Raspberry Pi 互联网流量。
另一个问题是,在我的路由器中我有这个端口转发选项,但我该如何使用它们?
我的树莓派的地址是 192.168.0.18,节点端口是 1883,有人可以帮我吗?
答案1
ZeroTier 就是你想要的
它是一种点对点(使用您的机器作为对等点)的网状 VPN。
个人使用可免费。
基本上,你只需将它安装在你的 MQTT 服务器和 RPi 上,通过 ZeroTier 网页界面创建一个私有网络(注册后),然后将设备加入上述网络 1.在客户端设备上zerotier-one join <NETWORK_ID>
使用2. 通过允许他们访问网络门户。
这将为他们提供一个新的 IP 地址,以及他们的其他 LAN IP 地址。这个新 IP 地址的行为类似于 LAN。因此,将您的 RPI 指向 MQTT 服务器的新 ZeroTier 地址(确保 MQTT 服务器也在监听该地址或 0.0.0.0),只要两个设备都有互联网连接,它就会正常工作。
一切都已加密,因此足够安全。
希望有帮助!
注意:可以使用 wireguard,但它更像是一种传统的 VPN,需要更多的路由配置才能使分割隧道正常工作。
编辑:同样,出于对狗和所有发霉东西的爱,不要使用路由器转发 MQTT 端口。这会将其置于公共互联网上。即使您在 MQTT 上设置了安全措施,人们仍然可以破坏该服务。