- 前提:WSL(Ubuntu22)作为订阅者,本机Win10作为发布者。
1、Linux安装Mosquitto
- 命令行安装。
-
sudo apt-get install mosquitto
-
- 以上默认只安装了mosquitto的服务,不带测试客户端工具mosquitto_sub和mosquitto_pub。如果需要,则可以安装:
-
sudo apt-get install mosquitto-clients
-
- 启动服务。
-
sudo systemctl start mosquitto
-
- 安装成功并启动后,发现本机并不能成功访问到WSL的Mosquitto服务器,防火墙也放行了1883端口,但是仍然无法访问到1883端口。
- 因为Ubuntu上的mosquitto服务默认是 local only mode。查看命令:
-
mosquitto -v
-
- 修改配置文件。
-
sudo nano /etc/mosquitto/mosquitto.conf
-
- 添加下面内容:
-
# 允许匿名连接 allow_anonymous true # MQTT协议配置,监听所有IPv4地址 listener 1883 0.0.0.0 socket_domain ipv4 protocol mqtt
-
- 重启服务。
-
sudo systemctl restart mosquitto
-
2、Win安装Mosquitto
- 参考:MQTT——Mosquitto安装和使用(Win10)-CSDN博客
3、发送消息
- WSL,启动订阅。
-
mosquitto_sub -h localhost -t topic
- -h后接的是本地地址。
- 查看WSL的ip地址。
-
ip add show
-
-
- 本机Win,发布消息。
-
mosquitto_pub -h 172.29.106.xxx -t topic -m "Hello from WSL"
- -h后接的是WSL的地址。
-
- 消息发送成功。