【发布时间】:2021-03-18 16:18:48
【问题描述】:
我正在尝试通过使用 IPv6 订阅和发布 mosquitto 在我的 Ubuntu 和树莓派 pi3 之间进行通信。 我禁用了 IPv4 并尝试使用以下命令进行订阅:
mosquitto_sub -h raspberrypi -p 1883 -v -t "test"
回应:
Error: Connection refused
我的蚊子配置:
id_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
#allow_anonymous false
listener 1883
socket_domain ipv6
#listener 1883 fe80::b497:9600:80bf:a56e
我没有使用 MQTT 协议的经验,你能帮我解决这个问题吗? 提前致谢。
【问题讨论】:
-
对于链路本地 IPv6 地址,您还需要使用区域 ID。
-
raspberrypi是否解析为 IPv6 地址?mosquitto_sub无法强制使用 IPv6,因此主机名需要解析为 IPv6 地址,正如 @RonMaupin 所说,对于链接本地地址,它需要包含%eth0接口标识符 -
您的 MQTT 代理是否在侦听 IPv6 地址?在日志文件中,您应该在启动时看到如下内容:
Opening ipv6 listen socket on port 1883 -
如果您刚开始使用 Mosquitto 和 MQTT,Steve 的互联网指南是很好的资源:@987654321@
-
谢谢@hardillb 它适用于这个命令:
mosquitto_sub -h "fe80::b497:9600:80bf:a45e%enp0s25" -p 1883 -v -t "test"