如何通过互联网使用 MQTT?
How to use MQTT over the internet?
目前,我已经成功地 运行 成为一名 mosquitto 经纪人,订阅主题并向本地网络中的客户发布消息。
如何与位于不同 IP 地址的另一个本地网络通信?
我应该设置 2 个 mosquitto 代理,每个本地网络一个吗?
其他本地网络中的 PC 需要可以从 Internet 访问,因此如果它在防火墙后面,您需要在路由器内部设置端口转发规则。该规则需要将流量从 public IP 地址转发到您代理的内部 LAN 专用 IP 地址。
请记住,MQTT 使用端口 1883 和 8883(用于 SSL)。
这完全取决于您的系统需要如何工作,但您可以使用多个代理(每个网络中一个),然后在代理之间创建所谓的桥梁。
这样做的好处是,如果出现网络中断,每个网络都可以独立于其他网络继续工作。
网桥还允许您控制在站点之间共享哪些消息。有关如何创建网桥的详细信息,请参见 mosquitto.conf 手册页:
http://mosquitto.org/man/mosquitto-conf-5.html
但正如 Paolo 所说,您需要在路由器上为端口 1883/8883 设置端口转发,以将代理暴露在互联网上。
因为 mqtt
使用 tcp
连接,所以还有一个安全的方法如下:
防火墙后面的私人经纪人 A。
B 在另一个防火墙后面的私人经纪人 B。
网上的C云经纪人C.
双向设置A到C的网桥。这必须在 A 上配置。互联网安全 tcp
link 将由 A 创建。
双向设置B到C的网桥。这必须在 B 上配置。互联网安全 tcp
link 将由 B 创建。
这将创建一个更安全的网桥,即使您无法控制路由器或防火墙也可以这样做。
以下是在私有 space(家庭)
内允许 public 连接到 MQTT 服务器的步骤
- 允许在您的路由器上进行端口转发
public port 1883 should be forwarded to private port 1883
IP Address to forward requests on this port should be of the IP address of MQTT server/PC in your home/private network
- 更新 Mosquitto 配置以允许 public 个侦听器
add line listener 1883 0.0.0.0 under #listener port-number [ip address/host name]
This will allow requests from any source on 1883 port to be handled by your MQTT
- 重新启动 MQTT
经过多次试验和错误以及许多不同的配置更改后,我可以按照上述步骤成功打开我的 MQTT 服务器以访问 public/internet 流量。
目前,我已经成功地 运行 成为一名 mosquitto 经纪人,订阅主题并向本地网络中的客户发布消息。
如何与位于不同 IP 地址的另一个本地网络通信?
我应该设置 2 个 mosquitto 代理,每个本地网络一个吗?
其他本地网络中的 PC 需要可以从 Internet 访问,因此如果它在防火墙后面,您需要在路由器内部设置端口转发规则。该规则需要将流量从 public IP 地址转发到您代理的内部 LAN 专用 IP 地址。
请记住,MQTT 使用端口 1883 和 8883(用于 SSL)。
这完全取决于您的系统需要如何工作,但您可以使用多个代理(每个网络中一个),然后在代理之间创建所谓的桥梁。
这样做的好处是,如果出现网络中断,每个网络都可以独立于其他网络继续工作。
网桥还允许您控制在站点之间共享哪些消息。有关如何创建网桥的详细信息,请参见 mosquitto.conf 手册页:
http://mosquitto.org/man/mosquitto-conf-5.html
但正如 Paolo 所说,您需要在路由器上为端口 1883/8883 设置端口转发,以将代理暴露在互联网上。
因为 mqtt
使用 tcp
连接,所以还有一个安全的方法如下:
防火墙后面的私人经纪人 A。 B 在另一个防火墙后面的私人经纪人 B。 网上的C云经纪人C.
双向设置A到C的网桥。这必须在 A 上配置。互联网安全 tcp
link 将由 A 创建。
双向设置B到C的网桥。这必须在 B 上配置。互联网安全 tcp
link 将由 B 创建。
这将创建一个更安全的网桥,即使您无法控制路由器或防火墙也可以这样做。
以下是在私有 space(家庭)
内允许 public 连接到 MQTT 服务器的步骤- 允许在您的路由器上进行端口转发
public port 1883 should be forwarded to private port 1883 IP Address to forward requests on this port should be of the IP address of MQTT server/PC in your home/private network
- 更新 Mosquitto 配置以允许 public 个侦听器
add line listener 1883 0.0.0.0 under #listener port-number [ip address/host name] This will allow requests from any source on 1883 port to be handled by your MQTT
- 重新启动 MQTT
经过多次试验和错误以及许多不同的配置更改后,我可以按照上述步骤成功打开我的 MQTT 服务器以访问 public/internet 流量。