如何在Ubuntu 16.04上安装Mosquitto MQTT Broker / Server

MQTT是基于发布/订阅模型的,基于TCP / IP的“轻量级”消息协议,用于“物联网”设备(例如ESP8266,Raspberry Pi等)之间的通信。它在资源不足和电池供电的应用(例如家庭)中非常受欢迎自动化,安全警报系统和电池供电的传感器网络。

Mosquitto是实现MQTT协议的开源消息代理(或服务器)。凭借其良好的社区支持,文档和易于安装,它已成为最受欢迎的MQTT经纪人之一。

先决条件

  • 具有root访问权限的Ubuntu 16.04服务器
  • TCP:1883在防火墙上打开端口

第一步:安装Mosquitto Broker

更新Ubuntu的软件包列表,并安装可用的最新Mosquitto Broker

sudo apt-get update
sudo apt-get install mosquitto

Mosquitto服务将在安装后启动。

第二步:安装客户端并测试

安装MQTT客户端

sudo apt-get install mosquitto-clients

Mosquitto客户端可帮助我们通过命令行实用程序轻松测试MQTT。我们将使用两个命令窗口,一个用于订阅名为的主题"test",另一个用于向其发布消息。

主题是代理用于过滤每个已连接客户端的消息的标签。订阅主题的客户端程序"Home1/BedroomTemp"将仅侦听其他客户端发布到同一主题的消息。

订阅主题 "test"

mosquitto_sub -t "test"

Mosquito_sub是我们在上一个命令中安装的订阅客户端。在这里,我们指定“ -t”,后跟主题名称。

将消息发布到主题 "test"

作为第二个实例登录到终端,并向该"test"主题发布消息。

mosquitto_pub -m "message from mosquitto_pub client" -t "test"

在这里,附加参数“ –m”后面是我们要发布的消息。点击“ Enter”,您应该mosquitto_pub clientmosquito_sub client正在运行的其他终端上看到一条消息。

第三步:使用密码保护

Mosquitto带有一个名为的密码文件生成实用程序mosquitto_passwd

sudo mosquitto_passwd -c /etc/mosquitto/passwd dave
Password: password

为Mosquitto创建一个配置文件,指向我们刚刚创建的密码文件。

sudo nano /etc/mosquitto/conf.d/default.conf

这将打开一个空文件。将以下内容粘贴到其中。

allow_anonymous false
password_file /etc/mosquitto/passwd

使用“ Ctrl+O”,“ Enter”和“ Ctrl+X” 保存并退出文本编辑器。

现在,重新启动Mosquitto服务器并测试我们的更改。

sudo systemctl restart mosquitto

在订阅客户端窗口中,按“ Ctrl+C”以退出订阅客户端并使用以下命令重新启动它。

mosquitto_sub -t "test" -u "dave" -P "password"

注意这里的大写字母-P

在“发布客户端”窗口中,尝试发布不带密码的消息。

mosquitto_pub -t "test" -m "message from mosquitto_pub client"

该消息将被拒绝,并显示以下错误消息。

Connection Refused: not authorised.
Error: The connection was refused.

现在使用username和发布消息password

mosquitto_pub -t "test" -m "message from mosquitto_pub client" -u "dave" -P "password"

点击“ Enter”,您将在订阅客户端窗口中看到该消息,如第二步所示。

结论

现在,我们已经设置了受密码保护的MQTT服务器。您可以将Ubuntu服务器的公共IP用作项目的MQTT代理。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息