介绍

Eclipse Mosquitto:Eclipse 基金会开源、采用C 语言开发的轻量级 MQTT Broker,遵循 MQTT3.1.1 / MQTT5.0 标准,当前物联网最常用小型 MQTT 服务端,BSD 开源协议(商用免费无版权限制)。空闲内存仅几 MB,可跑在树莓派、路由器、Linux 工控板、老旧 Windows 主机。

端口

用途

1883

普通 TCP-MQTT(明文,默认)

8883

MQTT+TLS 加密

8083

WebSocket-MQTT(前端 JS 连接)

8084

WebSocket+TLS

Windows安装

一、下载:

mosquitto下载地址:Download | Eclipse Mosquitto

二、安装

双击mosquitto-2.1.2-install-windows-x64.exe

更改安装目录

安装完毕后的目录

三、环境变量配置

右键“我的电脑”->属性->高级系统设置->环境变量,选择Path,点击编辑

新增变量“D:\Program Files\Mosquitto”

打开命令提示符(CMD)或 PowerShell,输入:mosquitto -h  若输出 mosquitto version 2.1.2,则表示安装成功.

四、 测试

手动命令行启动:mosquitto -v

Windows 自带 mosquitto_sub 订阅 和 mosquitto_pub 发布 工具

打开第一个窗口(订阅)

mosquitto_sub -h 127.0.0.1 -p 1883 -t "test/topic"

打开第二个窗口(发布)

mosquitto_pub -h 127.0.0.1 -p 1883 -t "test/topic" -m "Hello Mosquitto"

五、启动、停止服务

(必须以管理员身份运行)

启动服务:net start mosquitto

停止服务:net stop mosquitto

在Windows 左下角开始菜单,搜索 cmd 或 命令提示符,右键搜索结果 → 选择以管理员身份运行;在弹出的管理员命令行中重新执行:

或通过 Windows 服务管理器(services.msc)查找 ‌Mosquitto Broker‌ 并启动。

验证服务状态‌:

sc query mosquitto

状态应为 RUNNING。

停止服务:net stop mosquitto

六、配置 Mosquitto 服务

配置文件路径‌:D:\Program Files\mosquitto\mosquitto.conf

关键配置项‌(建议在文件末尾添加或修改):

# 监听所有网络接口的1883端口(允许局域网访问)

listener 1883 0.0.0.0

#websocket支持,可支持浏览器端的MQTT连接

listener 8083 0.0.0.0

protocol websockets

# 禁用匿名访问(必须设置,否则不安全)

allow_anonymous false

# 指定密码文件路径(用于用户名密码认证)

password_file D:\Program Files\mosquitto\pwfile.conf

# 启用消息持久化(服务器重启后保留订阅和保留消息)

persistence true

persistence_location D:\Program Files\Mosquitto\data

# 启用日志记录(便于排查问题)

log_dest file D:\Program Files\Mosquitto\log\mosquitto.log

log_type error

log_type warning

log_type notice

创建密码文件‌:

在命令提示符中,进入安装目录并创建用户(例如用户名 admin,密码 123456):

首先创建pwfile.conf文件,

然后在当前目录下的命令窗口中执行:

mosquitto_passwd.exe -b pwfile.conf admin 123456

‌注意‌:-b 参数表示非交互式创建,首次创建时使用 -c 会覆盖文件,后续添加用户时请勿使用 -c。

停止 然后 启动

net stop mosquitto

net start mosquitto 

检查启动状态

sc query mosquitto(非管理员的窗口中运行)

窗口 A(订阅主题)‌:

mosquitto_sub -h 127.0.0.1 -p 1883 -t "test/topic" -u admin -P 123456

窗口 B(发布消息)‌:

mosquitto_pub -h 127.0.0.1 -p 1883 -t "test/topic" -m "Hello zyf" -u admin -P 123456

Linux 安装与使用-Ubuntu

一、安装命令

  1. mosquitto:服务端
  2. mosquitto-clients:订阅 / 发布测试工具

cd /usr/local

sudo apt update

sudo apt install mosquitto mosquitto-clients -y

二、查看服务状态

sudo systemctl status mosquitto

三、测试消息

终端 1(订阅)

mosquitto_sub -h localhost -t "test/topic"

终端 2(发布)

mosquitto_pub -h localhost -t "test/topic" -m "Hello Linux Mosquitto"

四、常用服务命令

sudo systemctl start mosquitto    # 启动

sudo systemctl stop mosquitto    # 停止

sudo systemctl restart mosquitto  # 重启

sudo systemctl enable mosquitto  # 开机自启

Linux 安装与使用-Alibaba Cloud Linux /CetnOS 7

一、下载

安装包:https://mosquitto.org/download/

把压缩包拷贝到/opt/software目录下

二、解压

创建目录:mkdir /us/local/mosquitto

tar -xvf /opt/software/mosquitto-2.1.2.tar.gz -C /usr/local/mosquitto

三、安装依赖

CentOS 7 的 yum 源失效了,执行下面红色命令(Alibaba Cloud Linux忽略

cd /etc/yum.repos.d/

mkdir backup

mv *.repo backup/

curl -o CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

curl -o epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo

sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo

yum clean all

yum makecache

下载 cJSON 源码包

cd /opt/software

curl -OL https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.18.tar.gz

#解压

tar -zxvf /opt/software/v1.7.18.tar.gz

cd /opt/software/cJSON-1.7.18

#编译安装

make

make install

安装mosquitto依赖

dnf install -y gcc gcc-c++ make cmake openssl-devel zlib-devel c-ares-devel uuid-devel libuuid-devel libedit-devel libmicrohttpd-devel sqlite-devel

四、修复动态库找不到问题

echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf

ldconfig

五、解压

mkdir /usr/local/mosquitto

tar -zxvf /opt/software/mosquitto-2.1.2.tar.gz -C /usr/local/mosquitto

六、编译

cd /usr/local/mosquitto/mosquitto-2.1.2

make

make install

七、创建配置文件目录

mkdir -p /usr/local/etc/mosquitto

mkdir -p /var/lib/mosquitto

mkdir -p /var/log/mosquitto

八、设置目录权限

# 日志目录权限

chmod 755 /var/log/mosquitto

chown root:root /var/log/mosquitto

# 持久化目录权限

chmod 755 /var/lib/mosquitto

chown root:root /var/lib/mosquitto

九、配置文件

cat > /usr/local/etc/mosquitto/mosquitto.conf << EOF

# MQTT  监听端口

listener 1883

#不允许匿名访问

allow_anonymous false

#指定密码文件路径

password_file /usr/local/etc/mosquitto/pwfile.conf

#开启消息持久化

persistence true

persistence_location /var/lib/mosquitto/

#日志配置

log_dest file /var/log/mosquitto/mosquitto.log

log_type all

EOF

#生成密码文件(用户:admin,密码:123456)

mosquitto_passwd -c /usr/local/etc/mosquitto/pwfile.conf admin

# 两次输入密码123456

# 密码文件严格权限

chmod 600 /usr/local/etc/mosquitto/pwfile.conf

chown root:root /usr/local/etc/mosquitto/pwfile.conf

十、创建 systemd 服务(开机自启)

cat > /etc/systemd/system/mosquitto.service << EOF

[Unit]

Description=Mosquitto MQTT Broker

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf -d

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOF

十一、设置开机自启 + 启动服务

systemctl daemon-reload

systemctl enable mosquitto

systemctl start mosquitto

十二、查看状态(验证成功)

systemctl status mosquitto

十三、测试 MQTT 收发(验证可用)

开第一个窗口:订阅消息

/usr/local/bin/mosquitto_sub -h localhost -t test/topic -u admin -P 123456

开第二个窗口:发布消息

/usr/local/bin/mosquitto_pub -t test/topic -m "hello mqtt" -u admin -P 123456

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐