Linux本地部署Mosquitto MQTT协议消息服务端并实现远程访问【内网穿透】
# 安装mosquitto
sudo apt-update
sudo apt-get install -y mosquitto
# 编辑mosquitto配置文件以允许匿名访问和非本地连接
sudo nano /etc/mosquitto/mosquitto.conf
# 确保以下行是这样的,去掉注释并修改为yes
# allow_anonymous true
# password_file /etc/mosquitto/passwd
# allow_anonymous true
# 重启mosquitto服务
sudo systemctl restart mosquitto
# 设置防火墙允许MQTT端口(默认1883)
sudo ufw allow 1883/tcp
sudo ufw enable
sudo ufw status
# 内网穿透部分,使用cpolar建立的内网穿透
# 下载并安装cpolar客户端
curl -L https://www.cpolar.com/static/downloads/cpolar-stable-linux-amd64.zip -o cpolar.zip
unzip cpolar.zip
sudo ./cpolar-stable-linux-amd64/cpolar install
# 登录cpolar账号
./cpolar-stable-linux-amd64/cpolar login
# 创建隧道,映射到MQTT端口
./cpolar-stable-linux-amd64/cpolar tcp 1883
# 查看隧道信息,获取公网地址
./cpolar-stable-linux-amd64/cpolar status
# 使用MQTT客户端测试远程连接,例如使用Mosquitto_sub和Mosquitto_pub
# 替换下面命令中的 <公网地址> 为cpolar提供的公网地址
# 订阅消息
mosquitto_sub -h "<公网地址>" -t "test_topic" -p 2883
# 发布消息
mosquitto_pub -h "<公网地址>" -t "test_topic" -m "Hello, Mosquitto" -p 2883
在这个例子中,我们首先通过apt安装mosquitto,然后修改mosquitto的配置文件以允许匿名访问,并启动mosquitto服务。之后,我们设置了防火墙以允许MQTT端口的流量。最后,我们使用cpolar建立内网穿透,从而能够远程接入我们的MQTT服务器。
评论已关闭