Ubuntu系统 MQTT Broker(Mosquitto)安装
Mosquitto 是一个开源的 MQTT(消息队列遥测传输)消息代理(broker),实现了 MQTT 协议 3.1 和 3.1.1 版本。它主要用于机器之间的消息通信(即物联网、M2M),特别是资源受限的设备和低带宽、不可靠网络的环境。
安装 Mosquitto
sudo apt update
sudo apt install mosquitto mosquitto-clients
安装完成以后Mosquitto会自动启动。
常用命令
# 启动Mosquitto
sudo systemctl start mosquitto# 停止Mosquitto
sudo systemctl stop mosquitto# 重启
sudo systemctl restart mosquitto# 查看运行状态
sudo systemctl status mosquitto# 设置开机启动
sudo systemctl enable mosquitto# 禁用开机启动
sudo systemctl disable mosquitto
设置密码
创建密码文件
Mosquitto 提供了 mosquitto_passwd
工具来创建和管理密码文件。假设你想将用户的认证信息保存到 /etc/mosquitto/passwd
文件中:
sudo mosquitto_passwd -c /etc/mosquitto/passwd your_username
-c
参数表示创建一个新的密码文件(如果文件已存在,则会覆盖)。your_username
是你的用户名,系统会提示你输入并确认密码。
要添加更多用户,可以重复运行以下命令(不使用 -c
,这样不会覆盖文件):
sudo mosquitto_passwd /etc/mosquitto/passwd another_username
配置 Mosquitto 使用密码文件
编辑 Mosquitto 的配置文件,一般位于 /etc/mosquitto/mosquitto.conf
或 /etc/mosquitto/conf.d/default.conf
。如果配置文件中没有 allow_anonymous
和 password_file
相关配置项,可以添加以下内容:
# 禁用匿名访问
allow_anonymous false# 指定密码文件
password_file /etc/mosquitto/passwd
保存配置文件后,重启 Mosquitto 服务使更改生效
sudo systemctl restart mosquitto
验证配置
你可以使用 Mosquitto 客户端来验证配置是否成功:
mosquitto_sub -h localhost -t test/topic -u your_username -P your_password
如果 Mosquitto 客户端能够成功连接并订阅主题 test/topic
,则说明密码配置成功。
修改端口
Mosquitto 默认端口1883,可以修改配置文件来自定义端口,Mosquitto 的主配置文件通常位于 /etc/mosquitto/mosquitto.conf
或 /etc/mosquitto/conf.d/default.conf
。
在配置文件中查找 listener
相关的行。如果没有找到,可以手动添加。listener
指令用于指定 Mosquitto 的监听端口和绑定的网络接口。
# 监听端口,默认是 1883(非加密端口)
listener 1883# 如果你想将其更改为其他端口(例如 1884)
listener 1884# 监听的网络接口,默认监听所有接口
# 可以绑定到特定的 IP 地址(例如 127.0.0.1 仅允许本地连接)
# bind_address 127.0.0.1
要使新的配置生效,需要重启 Mosquitto 服务:
sudo systemctl restart mosquitto
你可以使用以下命令来验证 Mosquitto 是否在指定的端口上监听:
sudo netstat -tulnp | grep mosquitto