无需打开端口即可连接到 MQTT 服务器

物联网 MQTT
2021-06-28 08:54:11

我在内部网络中有一个 MQTT 客户端,在云中的某个地方有一个 MQTT 服务器。如何在不打开客户端网络端口的情况下连接到 MQTT 服务器?

1个回答

您不需要打开任何端口来连接到普通 NAT 内部网络(例如普通的国内 ADSL 设置)上的外部代理。

只要您的网络允许所有出站连接(和相关回复),那么它应该都能正常工作。

这是因为所有 MQTT 连接都是由客户端发起的,然后一直存在,直到客户端关闭连接。订阅的消息只是沿着这个现有的连接流回。

如果您需要明确允许出站端口,则默认端口为 1883。

如果您在更封闭的网络上,例如需要您使用代理才能访问外部世界的公司网络,那么您有两种选择。

  1. 您需要一个 OSI 第 5 层代理,例如袜子
  2. 如果您只能访问 HTTP 代理,那么您必须希望您的外部代理和客户端通过 Websockets 支持 MQTT。