【问题标题】:Mosquitto_sub Error : connection refused, IPv6 onlyMosquitto_sub 错误:连接被拒绝,仅限 IPv6
【发布时间】: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"

标签: mqtt ipv6 mosquitto


【解决方案1】:

如 cmets 中所述

要使用链接本地 ipv6 地址,您必须在地址末尾包含接口标识符。

mosquitto_sub -h "fe80::b497:9600:80bf:a45e%enp0s25" -p 1883 -v -t "test"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2016-12-09
    相关资源
    最近更新 更多