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

这篇具有很好参考价值的文章主要介绍了linux下的mosquitto服务安装及使用(避坑指南)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。

mosquitto介绍

Mosquitto的特点:

1. 轻量级:Mosquitto是一个轻量级的MQTT代理服务器,它的设计目标是提供高效、快速和可靠的消息传递,适用于各种规模的应用。

2. 容易部署:Mosquitto的安装和部署非常简单,可以在多个平台上运行,包括Linux、Windows、macOS等。

3. 安全性:Mosquitto支持基于TLS/SSL的加密通信,可以保护消息的安全性和机密性。同时,它还支持基于用户名和密码的身份验证,以及访问控制列表(ACL)来限制访问权限。

4. 可扩展性:Mosquitto支持多个客户端连接和多个主题的订阅,可以满足大规模应用的需求。

Ubuntu下的安装

方式一:源码安装

下载mosquitto

官网:https://mosquitto.org/

源码地址:https://mosquitto.org/files/source/mosquitto-2.0.9.tar.gz

优点是可以任意指定需要的版本。 但就是稍麻烦些,需要自己编译使用。若需要添加进服务,则也需要自己来配置。

cd /home/test
wget --no-check-certificate https://mosquitto.org/files/source/https://mosquitto.org/files/source/mosquitto-2.0.9.tar.gz

// 编译、安装
cd mosquitto-2.0.9
make
sudo make install

方式二:直接安装

优点是简单方便,只是版本不能由你自由选,不过版本应该也不会太旧,Ubuntu18下默认应该是2.0以上的版本。

sudo apt-get install mosquitto

以上默认只安装了mosquitto的服务,不带测试客户端工具mosquitto_sub和mosquitto_pub。如果需要,则可以安装:

sudo apt-get install mosquitto-clients

服务管理

service --status-all

它将显示 Ubuntu 上的完整服务列表。如过系统是 Ubuntu 18.04、Ubuntu 20.04 和 Ubuntu 22.04 版本或以上版本,建议使用Systemd systemctl 实用程序启动、停止或重新启动服务。较早的版本则可以使用 service 命令启动/停止/重启服务。

service 是一种较旧的服务管理命令,用于与 System V init 系统兼容的 Linux 发行版。它可以启动、停止、重启或查询系统服务的状态。使用 sudo service 命令时,你需要指定服务的名称,例如 sudo service apache2 stop 将停止 Apache 服务器。 sudo systemctl 是一个较新的服务管理命令,用于与 Systemd 系统兼容的 Linux 发行版,如最新版本的 Ubuntu、Fedora 和 CentOS。它提供了更多的功能和灵活性。

还有一种方式,可以使用 /etc/init.d 目录中的初始化脚本启动、停止或重新启动服务。该目录实际上包含用于不同服务的各种脚本。如使用:

/etc/init.d/mosquitto  start

自从 Ubuntu 切换到 Systemd 后,不推荐使用初始化脚本。

systemctl 启动 mosquitto 服务:

sudo systemctl stop mosquitto

停止mosquitto 服务:

sudo systemctl start mosquitto

要重新启动 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这个命令时可以看到下图现象:

mosquitto服务器配置,linux,运维,服务器

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

使用netstat命令,如:

netstat -ntpl

mosquitto服务器配置,linux,运维,服务器

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 "发布的内容"

mosquitto服务器配置,linux,运维,服务器mqtt客户端下载

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

工具下载地址:

MQTTX 下载

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

mosquitto服务器配置,linux,运维,服务器

 密码配置

 默认安装的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博客

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ

如何下载安装RabbitMQ_雨会停rain的博客-CSDN博客

RabbitMQ安装部署——超详细哦~_懒羊羊夸夸~的博客-CSDN博客

小议 MQTT 物联网传输协议 - UinIO.com 电子技术博客

RabbitMQ安装部署——超详细哦~_懒羊羊夸夸~的博客-CSDN博客

Bash Shell 脚本编程实践 - UinIO.com 电子技术博客

从 GNU Make 到 CMake 快速入门 - UinIO.com 电子技术博客

nodejs快速搭建MQTT服务器_aedes mqtt_qczxl520的博客-CSDN博客

EMQX 企业版: 企业级 MQTT 物联网接入平台

MQTT服务器_鸿蒙道的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-659229.html

到了这里,关于linux下的mosquitto服务安装及使用(避坑指南)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下的HTTP代理服务器Squid的配置和使用

    Squid是一个流行的Linux下的HTTP代理服务器软件。通过Squid,你可以在Linux服务器上设置一个代理服务器,以便为客户端提供安全的网络连接和数据传输。以下是Squid的配置和使用指南。 1. 安装Squid 首先,你需要确保你的Linux系统上已经安装了Squid。你可以使用包管理器来安装Sq

    2024年01月16日
    浏览(60)
  • Linux服务器快速安装和配置MySQL8.0指南

    环境说明:阿里云ECS,2核2G(新老用户同享,仅需99/年),X86架构,CentOS 7.9操作系统。 1.查看当前服务器是否安装了mariadb,如果有安装需要先删除,如下图所示。 2.安装库(支持MySQL实现异步IO操作)。 1.访问MySQL官网下载MySQL-8.0.35社区版rpm安装包,如下图所示,选择合适的版本和

    2024年02月05日
    浏览(60)
  • AutoGPT 安装指南,使用避坑要点

    最近, AIGC 中最火的可能就当属于 AutoGPT 了吧,首先简单介绍一下AutoGPT 背景 AutoGPT 是基于 ChatGPT API 接口开发,项目首推 GPT-4 模型,但 OpenAI 账号 API 只有 gpt-3.5-turo 权限同样也可以使用。 项目在 github 上获取的 star 数从4 月初的 2k 到现在 60k,仅用了半个月 AutoGPT 之所以引起

    2024年02月05日
    浏览(51)
  • DELLR750服务器【实践避坑】ESXi 8.0.1安装和网络配置

    1、IP地址ping不同; 2、vCenter Server无法添加主机 3、vCenter Server安装失败 4、虚拟机联网ping不同 5、奇奇怪怪的网络问题 两台主机分别是DELL730和DELL750,因为730老机器厂家已经不再维护,且之支持到ESXi 7.0.3;而DELL750官方支持到ESXi 8.0.1。 DELL730主机安装ESXi 7.0.3:VMware-VMvisor-Instal

    2024年02月04日
    浏览(47)
  • 华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu

    华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什么 华为云云耀云服务器和上一代

    2024年02月07日
    浏览(88)
  • Linux下的floodlight安装指南(排坑版)

    (我的虚拟机环境:Linux x64、5.13.0内核、Ubuntu 20.04) 一号坑:严格按照官方要求的版本下载,不要用官网给的命令一步下载到位! 目前这两个jdk都是需要注册Oracle官方账号才能下载的,因此直接执行官网的命令,会有两种情况:1.默认下载了openjdk-11;2.无法下载openjdk-7-jdk,

    2023年04月27日
    浏览(38)
  • Linux下的web服务器搭建

    Web服务器:专门处理HTTP请求的服务器,常被称为Web服务器。 有时间好好研究这个。 另外可以参照  mac/linux安装php那篇一起看看 零、         常用的Web服务器有Apache和Nginx 。Apache server(httpd)是非常流行的web服务器长期稳居第一。Apache httpd又可以简称为httpd或者Apache,是Intern

    2024年02月04日
    浏览(51)
  • nvm详细安装步骤避坑指南以及使用(以win11系统为例)

    nvm是一个管理nodejs版本的工具。在实际的开发中,有些项目的开发依赖需要低版本的nodejs运行环境,有些则需要高版本的nodejs,此时我们就需要使用nvm来切换nodejs版本。 卸载现有 node 请注意,在安装适用于 Windows 的 NVM 之前,您需要卸载任何现有的 node.js 版本。还要删除所有

    2024年02月16日
    浏览(56)
  • Linux下的WEB服务器的搭建实战

    每次搭建一个服务器之前,比如MySQL、DNS、WEB等首先要挂载磁盘目录文件 挂载就是当要使用某个设备时(例如光盘或软盘),必须先将它们对应放到 Linux 系统中的某个目录上。其中对应的目录就叫作挂载点。只有经过操作之后,用户或程序才能访问到这些设备。这个操作过程

    2024年02月03日
    浏览(102)
  • MQTT:windows环境下配置MQTT服务器(mosquitto)

    目录 1.下载 mosquitto 2.安装 mosquitto  3.配置 mosquitto  4.测试 mosquitto         登录网址:         http://mosquitto.org/files/binary/         这里是window环境,选择win32/,下载mosquitto安装包。          双击安装 - 点击Next - 点击Next - 选择安装路径 - 点击install - 点击Finish。

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包