【发布时间】:2017-10-27 09:13:12
【问题描述】:
我在其中一个 EC2 实例 (ubuntu) 中安装了 Mosquitto MQTT,并且代理在 localhost 上运行良好。
我可以在本地机器和另一个 EC2 实例中发布/订阅(两个 EC2 都在同一子网 172.31.X.X 中)
现在,我想从外部 PC 连接代理(发布/订阅)。因此,我尝试将代理 IP 配置为 EC2 实例公共 IP。
VirtualBox:cat /etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
listener 1883 50.24.39.66
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
VirtualBox:
VirtualBox:sudo mosquitto -c /etc/mosquitto/mosquitto.conf
1495801790: mosquitto version 1.4.8 (build date Fri, 19 Feb 2016 12:03:16 +0100) starting
1495801790: Config loaded from /etc/mosquitto/mosquitto.conf.
1495801790: Opening ipv4 listen socket on port 1883.
1495801790: Error: Cannot assign requested address
carun@carun-VirtualBox:~$
但是,在重新启动代理时,出现上述错误“无法分配请求的地址”
到此为止,
- 允许(入站/出站)对 EC2 的所有访问。
- 在 EC2 中禁用防火墙
- -允许所有安全级别访问 EC2 安全组。
但运气不好,
所以问题,
- 如何将 EC2 公共 IP 分配给代理?
- 如何在世界之外访问 MQTT 代理?
提前感谢您的帮助!
【问题讨论】:
-
从 listener 行中移除 ip 地址,它将绑定到所有可用的 ip 地址。
-
所以我需要更换监听器来绑定?
-
默认情况下,代理将在 EC2 的私有 IP 上运行,正确...我们必须更新到公共 IP 以供外部世界访问,仪式?如果我错了,请纠正我。
-
@hardillb 说您应该将行更改为“listener 1883”而不是“listener 1883 50.24.39.66”。然后它将侦听所有 IP 接口。
标签: amazon-ec2 mqtt mosquitto