CentOS 7如何一步步安装MQTT,并配置好防火墙和自启?

MQTT(Message Queuing Telemetry Transport)作为一种轻量级的消息传输协议,在物联网、即时通讯和传感器数据采集等领域应用广泛,它基于发布/订阅模式,具有低开销、低带宽占用的特点,在服务器端部署一个稳定可靠的MQTT消息代理是实现这一架构的关键步骤,Mosquitto是一个开源的MQTT代理,它以其高性能、易安装和完全兼容MQTT协议的特性而备受青睐,本文将详细介绍如何在CentOS系统上一步步安装、配置并测试Mosquitto,为您提供一份清晰、完整的操作指南。

CentOS 7如何一步步安装MQTT,并配置好防火墙和自启?

环境准备

在开始安装之前,请确保您已具备以下条件:

  • 一台运行CentOS 7或CentOS 8/Stream的服务器。
  • 拥有sudo权限或root权限的用户账户。
  • 服务器已连接到互联网,以便下载必要的软件包。

第一步:安装EPEL仓库

Mosquitto软件包通常包含在EPEL(Extra Packages for Enterprise Linux)仓库中,而不是CentOS的默认仓库,首要任务是启用EPEL仓库。

对于CentOS 7系统,请执行以下命令:

sudo yum install epel-release -y

对于CentOS 8 / Stream系统,请使用dnf包管理器:

sudo dnf install epel-release -y

执行完毕后,系统将成功添加EPEL仓库,为安装Mosquitto做好了准备。

第二步:安装Mosquitto Broker和客户端工具

我们将通过包管理器安装Mosquitto服务本身以及一套用于测试的客户端工具,客户端工具包括mosquitto_pub(用于发布消息)和mosquitto_sub(用于订阅消息)。

CentOS 7上:

sudo yum install mosquitto mosquitto-clients -y

CentOS 8 / Stream上:

sudo dnf install mosquitto mosquitto-clients -y

此命令会自动处理所有依赖关系,并将Mosquitto安装到您的系统中。

第三步:启动并启用Mosquitto服务

安装完成后,Mosquitto服务并不会自动启动,我们需要使用systemctl来手动启动它,并将其设置为开机自启,以确保服务器重启后服务能自动运行。

执行以下命令启动服务:

sudo systemctl start mosquitto

设置服务为开机自启:

CentOS 7如何一步步安装MQTT,并配置好防火墙和自启?

sudo systemctl enable mosquitto

为了验证服务是否已经成功运行,可以检查其状态:

sudo systemctl status mosquitto

如果输出信息中显示active (running),则表示Mosquitto服务已正常运行。

第四步:配置防火墙

默认情况下,CentOS的防火墙会阻止外部连接,为了让MQTT客户端能够连接到服务器,必须开放标准的MQTT通信端口1883(TCP协议)。

使用firewall-cmd来永久开放该端口:

sudo firewall-cmd --permanent --add-port=1883/tcp

重新加载防火墙规则使更改生效:

sudo firewall-cmd --reload

至此,服务器端的网络配置也已完成。

第五步:测试MQTT服务

安装和配置工作完成后,最激动人心的部分就是测试,我们将使用两个终端窗口来模拟发布者和订阅者,验证消息能否正常传递。

打开终端一,运行订阅者命令,监听一个名为test/topic的主题:

mosquitto_sub -h localhost -t "test/topic"

此命令会一直保持运行状态,等待接收消息。

打开终端二,运行发布者命令,向test/topic主题发送一条消息“Hello MQTT”:

mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT"

回到终端一,您应该会立刻看到屏幕上显示出“Hello MQTT”这条消息,这表明您的Mosquitto服务安装成功,并且能够正常处理发布和订阅请求。

进阶配置:启用用户名密码认证

默认安装的Mosquitto允许匿名连接,这在生产环境中存在安全风险,我们可以通过简单的配置启用用户名和密码认证。

CentOS 7如何一步步安装MQTT,并配置好防火墙和自启?

  1. 创建密码文件:使用mosquitto_passwd命令创建一个用户(例如mqttuser)并设置密码。-c参数表示创建新文件。

    sudo mosquitto_passwd -c /etc/mosquitto/passwd mqttuser

    系统会提示您输入两次密码。

  2. 修改配置文件:编辑Mosquitto的主配置文件。

    sudo vi /etc/mosquitto/mosquitto.conf

    在文件末尾添加以下两行,禁用匿名连接并指定密码文件路径:

    allow_anonymous false
    password_file /etc/mosquitto/passwd
  3. 重启服务:保存配置文件后,重启Mosquitto服务使配置生效。

    sudo systemctl restart mosquitto

    客户端在连接时就必须提供正确的用户名和密码了,测试时只需在原命令后添加-u(用户名)和-P(密码)参数即可。


常见问题解答 (FAQs)

问题1:客户端连接Mosquitto服务时提示“Connection refused”或超时怎么办?

解答: 这是最常见的连接问题,通常由以下三个原因造成:

  • 服务未运行:首先检查Mosquitto服务状态,使用sudo systemctl status mosquitto确认其是否处于active (running)状态,如果不是,请使用sudo systemctl start mosquitto启动它。
  • 防火墙阻挡:确认服务器的防火墙已开放1883端口,可以使用sudo firewall-cmd --list-ports命令查看已开放的端口列表,确保1883/tcp在其中。
  • 网络或地址错误:检查客户端连接时使用的服务器IP地址或主机名是否正确,如果在本地测试,请使用localhost0.0.1;如果从其他机器连接,请使用服务器的公网或内网IP。

问题2:如何将Mosquitto更新到最新版本?

解答: 由于我们是通过EPEL仓库安装的Mosquitto,更新过程非常简单,只需执行系统的更新命令即可,对于CentOS 7,运行sudo yum update mosquitto;对于CentOS 8/Stream,运行sudo dnf update mosquitto,包管理器会自动检查EPEL仓库中的最新版本并执行升级。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-11 04:55
下一篇 2025-10-11 05:02

相关推荐

  • 如何为Caffe框架配置服务器?

    Caffe是一款深度学习框架,配置服务器时需安装依赖库、下载Caffe源代码、编译并运行。具体步骤包括安装CUDA和cuDNN、设置环境变量、编译Caffe源代码,最后通过修改配置文件来启动Caffe服务。

    2024-07-29
    008
  • CentOS 7/8最小化安装后,如何在线安装yum?

    在CentOS系统中,YUM(Yellowdog Updater Modified)是一个至关重要的软件包管理器,它能够自动处理软件包之间的依赖关系,极大地简化了系统的安装、更新和维护工作,在某些最小化安装或系统出现问题的场景下,YUM工具可能并未被预装或已损坏,通过在线方式重新安装YUM便成为了一项必备的技能……

    2025-10-07
    005
  • 如何在CentOS 7上完整搭建LNMP环境并发布PHP项目?

    在服务器运维领域,CentOS 7 以其卓越的稳定性和长期支持,一直是众多企业和开发者的首选操作系统,而 PHP 作为全球最流行的 Web 开发语言之一,与 CentOS 7 的结合构成了经典的服务器环境,在 CentOS 7 上“发布”或部署 PHP,并非简单的 yum install php 即可,本文将为……

    2025-10-08
    003
  • 如何安全地修改服务器FTP配置中的权限设置密码?

    摘要:本文主要介绍了如何在服务器上进行FTP配置,包括权限设置和密码修改。我们需要在服务器上安装FTP服务器软件,然后通过配置文件进行相关设置,如用户权限、目录访问等。我们将介绍如何修改FTP密码,以确保服务器的安全性。

    2024-07-26
    007

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信