接上一篇《ESP32使用MQTT协议通讯(EMQX)-CSDN博客》,上文中使用的是免费的公共 MQTT 服务器 | EMQ,若要运行自己的业务,还是自己搭建一个MQTT服务器比较稳妥。如果你有一台阿里云ECS主机,可以参考本文搭建自己的MQTT服务器。
在阿里云ECS的中安装MQTT服务器,一个流行的开源选择是Mosquitto。以下是安装和配置Mosquitto MQTT服务器的步骤:
步骤 1: 更新系统
在开始之前,确保你的系统是最新的:
bash
sudo yum update
步骤 2: 安装EPEL仓库
Mosquitto在标准的CentOS仓库中可能没有,所以你需要安装EPEL(Extra Packages for Enterprise Linux)仓库:
bash
sudo yum install epel-release
步骤 3: 安装Mosquitto
接下来,使用yum
来安装Mosquitto:
bash
sudo yum install mosquitto mosquitto-clients
安装完成后,启动Mosquitto服务。
bash
sudo systemctl start mosquitto
为了确保Mosquitto在系统重启后自动启动,可以将其设置为系统服务,随系统启动。
bash
sudo systemctl enable mosquitto
步骤 4: 配置Mosquitto
Mosquitto的配置文件通常位于/etc/mosquitto/mosquitto.conf
。你可以使用文本编辑器打开它,例如使用vi
或nano
:
1. 关闭匿名登录
为了安全起见,可以关闭Mosquitto的匿名登录功能,并设置用户名和密码进行认证。
(1)打开/etc/mosquitto/mosquitto.conf文件。
(2)在配置文件中找到allow_anonymous
行,并将其设置为false
。
(3)保存并关闭配置文件。
2. 设置用户名和密码
如果你想添加用户认证,可以使用mosquitto_passwd
命令来添加用户:
bash
sudo mosquitto_passwd -c /etc/mosquitto/passwdfile your_username
输入两次密码后,并重启服务:
bash
sudo systemctl restart mosquitto
步骤 5:开通端口供外网连接
开启防火墙允许MQTT流量,MQTT模式使用1883端口。
bash
sudo firewall-cmd --permanent --add-port=1883/tcp
sudo firewall-cmd --reload
另外还需在阿里云后台设置安全组策略,允许1883端口连接。
步骤 6:测试连接
使用MQTTX等客户端连接工具,测试连接即可。
完成以上步骤后,你就应该在阿里云ECS的中成功安装并配置了MQTT服务器。