linux下的mosquitto服务安装及使用(避坑指南)

sudo systemctl restart mosquitto

检查 mosquitto 服务状态:

sudo systemctl status mosquitto

避坑指南

安装成功并启动后,发现外网并不能成功访问到,防火墙也放行了1883端口,但是仍然无法访问到1883端口,为什么会连不上Linux上的mosquitto服务器?

原因是Ubuntu上的mosquitto服务默认是 local only mode,当使用sudo service mosquitto start,再使用sudo service mosquitto status是查看不到当前服务器是运行在哪种模式,当使用mosquitto -v这个命令时可以看到下图现象:

在这里插入图片描述

还有个更简单的方法,排查此类问题。就是查看linux系统下开放了哪些端口,端口的使用情况。

使用netstat命令,如:

netstat -ntpl

127.0.0.1 是IPv4环回地址,也称为本地回环地址。它指向本地主机的网络接口,用于在本地主机上访问自己的服务和应用程序。 这类地址开头的服务只能本机访问。0.0.0.0 是通配符地址,表示任意主机。当服务绑定到 0.0.0.0 时,它将监听所有可用的网络接口上的传入连接,意味着可以从任意地址访问该服务。在Linux下, :::::1 是IPv6环回地址的两种表示形式,用于代表本地主机。

解决办法

直接修改/etc/mosquitto目录下的mosquitto.conf文件,开放端口和允许访问的地址即可。

# 设置允许匿名连接,如果禁止匿名连接,则需要配置账号、密码连接
allow_anonymous true

# mqtt 协议配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1883 0.0.0.0
socket_domain ipv4
protocol mqtt

测试使用

订阅消息

# 无密码
mosquitto_sub -t test1
# 有密码
mosquitto_sub -u yang -P abc123 -t test1

发布消息

# 无密码
mosquitto_pub -t test1 -m "发布的内容"
# 有密码
mosquitto_pub -u yang -P abc123 -t test1 -m "发布的内容"
mqtt客户端下载

在windows下,常用的mqtt客户端工具为MQTTX。

工具下载地址:

MQTTX 下载

https://github.com/emqx/MQTTX/releases/latest

密码配置

默认安装的mosquitto未启用密码,如果正式使用最好是启用密码验证。

配置mosquitto账号密码:

# 使用-c 参数会导致清空密码文件,重新插入用户
mosquitto_passwd -c pwfile.example 用户名

# 不使用-c 表示追加用户,不影响旧用户
mosquitto_passwd  pwfile.example 用户名

经过以上配置,在linux下默认会在/etc/mosquitto/目录下生成密码的配置文件 pwfile.example。也可以指定要生成的pwfile文件路径,使用以下形式:

mosquitto_passwd /etc/mosquitto/pwfile.example 用户名

修改/etc/mosquitto目录下的mosquitto.conf文件,启用密码。

# 设置是否允许匿名连接,如果禁止匿名连接,则需要配置账号、密码连接
allow_anonymous true

# 密码文件路径,禁止匿名连接配置,允许匿名则不用配置
password_file /etc/mosquitto/pwfile.example

# mqtt 协议配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1883 0.0.0.0
socket_domain ipv4
protocol mqtt

# ipv6
listener 1883 ::
socket_domain ipv6
protocol mqtt

# webscoket 协议配置,如果有的话需要配置,分为ipv4和ipv6两种,当前可以只配置启用一种
listener 1884 0.0.0.0
protocol websockets
socket_domain ipv4

listener 1884 ::
protocol websockets
socket_domain ipv4

# 允许的最大连接数,-1表示没有限制
max_connections -1

最后,重启mosquitto服务,配置文件的修改才能生效。

sudo systemctl restart mosquitto

其他MQTTBroker

除了Mosquitto,还有一些其他开源免费的MQTT代理服务器可供选择。

包括但不限于以下几种:

  1. Eclipse Mosquitto:Eclipse Mosquitto是Mosquitto的一个分支,它提供了更多的功能和改进,如更好的性能、更丰富的配置选项等。

  2. EMQX:EMQ X是一个高性能、可扩展的MQTT和MQTT-SN代理服务器,它支持多种协议和功能,如MQTT、MQTT-SN、CoAP、LwM2M等。

  3. HiveMQ:HiveMQ是一个专注于可靠性和可扩展性的MQTT代理服务器,它提供了高可用性和负载均衡等功能。

  4. RabbitMQ:RabbitMQ是一个通用的消息代理服务器,它支持多种协议和消息传递模式,包括AMQP、MQTT等。

5.Aedes:Aedes是一个基于JavaScript的轻量级MQTT消息代理服务器。

更多介绍:https://www.cnblogs.com/zhaojinhui/p/16790989.html

这些MQTT代理服务器都有各自的特点和适用场景,你可以根据自己的需求选择合适的。

其他资源

Linux搭建MQTT服务器(mosquitto)并使用

Linux搭建MQTT服务器(mosquitto)并使用_linux mosquitto_码仙♥的博客-CSDN博客

百度安全验证

https://wenku.csdn.net/answer/138aada39619ea890fc382855cc37e54

mosquitto服务器搭建及配置_mosquitto 配置_胖涛的博客-CSDN博客

Mosquitto 搭建及配置_mosquitto.conf_量子物理学的博客-CSDN博客

Linux下安装Mosquitto以及开启Websockets_linux mosquitto 启动_Quite不Quiet的博客-CSDN博客

RabbitMQ介绍及部署(超详细讲解)_rabbitmq服务器_char1otte的博客-CSDN博客
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

(img-fjGkNjtQ-1714277042113)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Mosquitto是一个MQTT(Message Queuing Telemetry Transport)消息代理/服务器,用于在物联网应用程序中传输消息。它是一个开源项目,提供了一个轻量级的发布/订阅消息传递协议,适用于各种设备和应用程序之间的通信。Mosquitto服务器在Linux系统上运行,并通过使用systemctl命令启动和管理。 要启动Mosquitto服务,您可以使用以下命令: sudo systemctl start mosquitto 要停止Mosquitto服务,您可以使用以下命令: sudo systemctl stop mosquitto 如果您需要重新启动Mosquitto服务,您可以使用以下命令: sudo systemctl restart mosquitto 通过搭建Mosquitto服务器,您可以创建和管理MQTT主题,向订阅者发送和接收消息,并实现高效的物联网通信。关于如何在Linux系统上搭建MQTT服务器(mosquitto),您可以参考博客文章《Linux搭建MQTT服务器(mosquitto)并使用》中提供的步骤和指南。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [linux下的mosquitto服务安装使用指南)](https://blog.csdn.net/qq8864/article/details/131607972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值