Ubuntu 上搭建一个 MQTT 服务器
https://i-blog.csdnimg.cn/direct/111409586ee54bfd96bd363bff0422eb.webp#pic_center在 Ubuntu 上搭建一个 MQTT 服务器,通常使用 Mosquitto 作为 MQTT 代理(Broker)。Mosquitto 是一个开源的 MQTT 代理,非常适合于轻量级的 IoT 应用。以下是完整的步调来安装 Mosquitto 并举行测试。
一、 安装 Mosquitto MQTT 服务器
更新体系包列表
首先,确保你的体系软件包是最新的。打开终端并运行以下下令:
sudo apt update
安装 Mosquitto 服务器
安装 Mosquitto 以及客户端工具(mosquitto-clients):
sudo apt install mosquitto mosquitto-clients
mosquitto: 是 MQTT 代理服务器。
mosquitto-clients: 包含 MQTT 客户端工具,用于测试和调试。
启动 Mosquitto 服务
安装完成后,Mosquitto 会自动作为体系服务启动。你可以检查它的状态:
sudo systemctl status mosquitto
假如没有启动,使用以下下令启动:
sudo systemctl start mosquitto
假如你希望 Mosquitto 在体系启动时自动启动,可以使用:
sudo systemctl enable mosquitto
二、 配置 Mosquitto 服务器并启用用户名和暗码
创建暗码文件
Mosquitto 使用暗码文件来验证客户端连接。使用 mosquitto_passwd 下令创建暗码文件并添加用户。
比方,创建一个名为 mosquitto_passwd 的暗码文件,并为用户 testuser 设置暗码:
sudo mosquitto_passwd -c /etc/mosquitto/passwd testuser
在实行此下令时,它会提示你输入并确认 testuser 用户的暗码。
修改 Mosquitto 配置文件
接下来,编辑 Mosquitto 的配置文件,启用身份验证。
编辑 /etc/mosquitto/mosquitto.conf 文件:
sudo nano /etc/mosquitto/mosquitto.conf
然后在文件中参加以下内容:
# 启用密码验证
allow_anonymous false
password_file /etc/mosquitto/passwd
allow_anonymous false:禁用匿名访问。
password_file /etc/mosquitto/passwd:指定暗码文件的位置。
生存并关闭文件。
重启 Mosquitto 服务
修改配置文件后,重启 Mosquitto 服务以使配置生效:
sudo systemctl restart mosquitto
三、测试 MQTT 服务器
订阅一个主题(测试订阅)
打开一个终端窗口,使用 mosquitto_sub 工具订阅一个主题(如 test/topic):
mosquitto_sub -h localhost -t "test/topic" -u "testuser" -P "yourpassword"
-u “testuser”:指定用户名。
-P “yourpassword”:指定用户名对应的暗码。
假如统统正常,你的终端会处于订阅状态,等候来自 test/topic 的消息。
发布消息(测试发布)
打开另一个终端窗口,使用 mosquitto_pub 工具向 test/topic 主题发布一条消息:
mosquitto_pub -h localhost -t "test/topic" -m "Hello, MQTT!" -u "testuser" -P "yourpassword"
假如订阅终端正在监听,你会看到 “Hello, MQTT!” 消息出现在订阅终端。
四、 测试 MQTT 连接
你可以使用 MQTT 客户端工具(如 MQTT.fx 或 MQTT Explorer)连接到你的 Mosquitto 服务器举行测试。
下载并安装 MQTT.fx(假如你在桌面情况中工作)
访问 MQTT.fx 官网 下载适用于你操作体系的版本。
配置 MQTT.fx
启动 MQTT.fx。
在 “Broker Address” 中输入 localhost 或 127.0.0.1(假如你在同一台呆板上运行 MQTT 服务器)。
默认端口是 1883,你可以根据需要更改端口。
测试发布和订阅
在 “Subscribe” 标签页中,输入你想订阅的主题(如 test/topic),然后点击 “Subscribe”。
在 “Publish” 标签页中,选择主题(如 test/topic)并发布消息。
五、 配置防火墙(假如有)
假如你的服务器启用了防火墙(如 ufw),你需要确保允许 MQTT 的默认端口(1883)通过防火墙。
允许端口 1883 通过防火墙:
bash
sudo ufw allow 1883
/tcp
检查防火墙状态:
bash
sudo ufw status
六、 远程访问 Mosquitto(可选)
假如你希望从远程设备访问你的 MQTT 服务器,可以举行以下操作:
配置 Mosquitto 监听公网 IP
编辑 /etc/mosquitto/mosquitto.conf 文件,确保 bind_address 设置为服务器的公网 IP,或者注释掉该行以便监听全部接口。
# bind_address 127.0.0.1
重启 Mosquitto 服务:
sudo systemctl restart mosquitto
配置防火墙
假如你想允许从远程设备访问 MQTT 服务器,确保防火墙允许 1883 端口的流量:
sudo ufw allow 1883
总结
通过以上步调,你可以在 Ubuntu 体系上成功搭建一个 Mosquitto MQTT 服务器,并使用内置的客户端工具举行测试。对于实际生产情况,可以根据需要进一步配置 SSL/TLS 加密、身份验证等安全设置。假如你希望将该 MQTT 服务器与其他设备或应用集成,可以进一步开发基于 MQTT 协议的客户端应用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]