在 Ubuntu 18.04 上搭建一个简单的 MQTT 服务器,可以使用 Eclipse Mosquitto,它是一个开源的 MQTT 代理(broker),支持 MQTT 协议。以下是详细的步骤:
1. 安装 Mosquitto
Mosquitto 可以通过 Ubuntu 的包管理器直接安装。
更新包列表
sudo apt update
安装 Mosquitto Broker 和客户端工具
sudo apt install mosquitto mosquitto-clients
mosquitto:MQTT 服务器(broker)。
mosquitto-clients:MQTT 客户端工具,用于测试。
2. 启动 Mosquitto 服务
安装完成后,Mosquitto 服务会自动启动。你可以通过以下命令检查服务状态:
sudo systemctl status mosquitto
如果服务没有启动,可以手动启动:
sudo systemctl start mosquitto
设置开机自启动:
sudo systemctl enable mosquitto
3. 测试 MQTT 服务器
使用 mosquitto-clients 工具测试 MQTT 服务器是否正常工作。
订阅主题
在一个终端中运行以下命令,订阅一个主题(例如 test/topic):
mosquitto_sub -h localhost -t “test/topic”
-h localhost:指定 MQTT 服务器地址。
-t “test/topic”:指定订阅的主题。
发布消息
在另一个终端中运行以下命令,向 test/topic 主题发布消息:
mosquitto_pub -h localhost -t “test/topic” -m “Hello, MQTT!”
-m “Hello, MQTT!”:要发布的消息内容。
如果一切正常,订阅的终端会收到消息:
Hello, MQTT!
4. 配置 Mosquitto(可选)
Mosquitto 的配置文件位于 /etc/mosquitto/mosquitto.conf。你可以根据需要修改配置。
示例:允许匿名访问
默认情况下,Mosquitto 允许匿名访问。如果需要禁用匿名访问,可以编辑配置文件:
sudo nano /etc/mosquitto/mosquitto.conf
找到以下行并修改:
ini
allow_anonymous false
然后设置用户名和密码:
sudo mosquitto_passwd -c /etc/mosquitto/passwd your_username
重启 Mosquitto 服务以应用更改:
sudo systemctl restart mosquitto
5. 防火墙配置(如果需要)
如果服务器启用了防火墙(如 ufw),需要允许 MQTT 的默认端口(1883)。
sudo ufw allow 1883
6. 使用客户端连接
你可以使用任何 MQTT 客户端连接到服务器。例如:
MQTT Explorer(图形化客户端)
Paho MQTT(Python 库)
Eclipse Paho(Java 库)
连接时,指定服务器地址和端口(默认 localhost:1883)。
7. 停止或卸载 Mosquitto
如果需要停止 Mosquitto 服务:
sudo systemctl stop mosquitto
如果需要卸载 Mosquitto:
sudo apt remove –purge mosquitto mosquitto-clients
总结
通过以上步骤,你可以在 Ubuntu 18.04 上快速搭建一个简单的 MQTT 服务器,并使用客户端工具进行测试。Mosquitto 是一个轻量级且功能强大的 MQTT 代理,适合用于 IoT 项目或消息传递系统。
发表回复