玩客云搭建MQTT服务器
玩客云搭建MQTT服务器
下载安装
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
apt-get update
apt-cache search mosquitto
apt-get install -y mosquitto mosquitto-clients
常用命令
sudo service mosquitto status #查看运行状态
sudo service mosquitto start #启动服务
sudo service mosquitto stop #停止服务
修改配置文件
MQTT服务器安装了之后,默认监听localhost的1883端口,外网不能够进行访问。如果有需要可以修改配置文件。用户的局部配置文件放在: /etc/mosquitto/conf.d/
目录下,并且这个目录下的所有以.conf
后缀的文件都将被mosquitto作为配置文件,在启动时加载。
首先,我们将创建一个Mosquitto将用于验证连接的密码文件。使用mosquitto_passwd
来创建这个文件,请确保使用你喜欢的用户名替换它:
sudo mosquitto_passwd -c /etc/mosquitto/passwd your-username #系统将提示您输入两次密码。
在/etc/mosquitto/conf.d
目录下,新建myconfig.conf
配置文件:
allow_anonymous false #不允许匿名访问
password_file /etc/mosquitto/passwd #密码文件位置
listener 1883 0.0.0.0 #监听的端口和IP地址
重启Mosquitto以获取配置更改:
sudo systemctl restart mosquitto
检查以确保服务再次运行:
sudo systemctl status mosquitto
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated)
Active: active (running) since Mon 2018-07-16 15:03:42 UTC; 2min 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 6683 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 6699 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 1152)
CGroup: /system.slice/mosquitto.service
└─6705 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
状态应该是active (running)
。如果不是,请检查配置文件并重新启动。Mosquitto的日志文件中可能会提供更多信息:
sudo tail /var/log/mosquitto/mosquitto.log
测试MQTT
测试Mosquitto
我们在步骤1中安装了一些命令行MQTT客户端。我们可以在localhost监听器上订阅主题测试,如下所示:
mosquitto_sub -h localhost -t test -u "your-user" -P "your-password"
我们可以用mosquitto_pub
发布:
mosquitto_pub -h localhost -t test -m "hello world" -u "your-user" -P "your-password"