我正在尝试使用RabbitMQ实现MQTT协议。我已经安装了RabbitMQ服务器并将MQTT端口从1883更改为80.我能够从网络发布和订阅服务器。但是当我尝试使用外部IP发布或订阅时,我收到“超时”错误。任何人都可以分享如何使用外部IP发布或订阅?
答案 0 :(得分:0)
从网络拓扑结构的问题来看,并不是很清楚,但我会猜测一下。
您正在连接到私有IP范围(例如192.168。*)的计算机上运行MQTT代理,您可以从同一网络上的另一台计算机连接到此计算机。
您现在正尝试从此网络外部的计算机进行连接。您的私有IP范围网络是在做NAT的路由器后面。您需要在路由器上启用端口转发,以将所需端口(在本例中为端口80)上的所有流量发送到代理计算机。如何执行此操作取决于您的路由器。
编辑: 鉴于新信息,有两种可能的选择:
您的RabbitMQ实例仅绑定到您的私有IP地址,请在rabittmq.conf文件中查看以RABBITMQ_NODE_IP_ADDRESS=
开头的条目。如果您有一条评论,那么rabbitmq将默认绑定到所有地址。有关详细信息,请访问:https://www.rabbitmq.com/configure.html
您的计算机上启用了防火墙,该防火墙以静默方式将所有流量丢弃到公共IP地址上的端口80。我建议它默默地丢弃流量,因为你看到超时而不是连接拒绝消息。您还没有说出您正在使用的操作系统,因此无法就如何更改防火墙规则提出建议