云电脑部署MQTT服务,物联网网站调试
在云电脑上部署 MQTT 服务,本质是给物联网设备找一个稳定的消息中转站。
本文用 Docker 方式在云电脑中运行 EMQX,然后通过物联网网站调试消息收发,零基础也能按步骤完成,最终得到可用的 MQTT 连接地址和验证结果。
准备云电脑与基础环境
云电脑建议选择 Linux 系统,配置 1 核 2G 即可跑起轻量 MQTT 服务。
登录云电脑后,先确认系统版本和网络状态:
cat /etc/os-release
ping -c 3 www.baidu.com
如果网络不通,检查云电脑控制台的安全组或防火墙是否放行了出站流量。
接着安装 Docker,以 Ubuntu 为例:
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
安装完成后执行 docker --version,能显示版本号说明 Docker 可用。
国内云电脑拉取镜像可能较慢,可配置镜像加速器,编辑 /etc/docker/daemon.json:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
保存后执行 sudo systemctl restart docker 使配置生效。
这一步不是必须,但能明显减少拉取超时。
启动 MQTT 服务并放行端口
用 Docker 运行 EMQX 是最省事的方式,一条命令即可启动:
docker run -d --name emqx \
-p 1883:1883 \
-p 8083:8083 \
-p 18083:18083 \
emqx/emqx:latest
参数说明:1883 是 MQTT 协议端口,8083 是 WebSocket 端口,18083 是 EMQX 管理后台端口。
启动后检查容器状态:
docker ps
如果容器没有正常运行,用 docker logs emqx 查看报错。
常见原因是端口被占用,可用 sudo netstat -tlnp | grep 1883 确认。
下一步在云电脑控制台的安全组中放行入站规则的 1883 和 18083 端口,协议选 TCP,来源填 0.0.0.0/0。
如果系统本身启用了 ufw,还需执行:
sudo ufw allow 1883/tcp
sudo ufw allow 18083/tcp
端口放行是物联网网站调试能否连通的关键,
很多连接超时都是安全组没放行导致的。 放行后打开浏览器访问 http:,
//云电脑公网IP:
18083
默认账号 admin,
密码 public,
首次登录会提示修改密码。
在物联网网站中调试 MQTT 连接
进入 EMQX 管理后台后,可以在“连接”页面看到当前客户端列表。
此时用物联网网站或调试工具发起连接,填入以下信息:
- 服务器地址:云电脑公网 IP
- 端口:1883
- 客户端 ID:自定义,如
iot-test-01 - 用户名和密码:如果未开启认证,留空即可
如果物联网网站要求 WebSocket 接入,端口改为 8083,路径填 /mqtt。
连接成功后,在 EMQX 后台的“连接”列表中应能看到对应客户端。
接着订阅一个测试主题,例如 test/topic,再从网站端发布一条消息:
{"device":"sensor01","temp":26.5}
在订阅端能收到相同内容,说明 MQTT 服务部署和物联网网站调试已经打通。消息收发成功是验证部署是否可用的直接标准,比只看端口是否监听更可靠。
避坑与常见报错处理
部署过程中容易遇到几类问题,按下面顺序排查能节省时间:
- 连接被拒绝:先确认 EMQX 容器在运行,再检查云电脑安全组和系统防火墙是否放行 1883 端口。
- 认证失败:如果开启了认证插件,需要在 EMQX 后台创建用户或调整认证规则,否则匿名连接会被拒绝。
- WebSocket 连不上:确认端口用的是 8083 而不是 1883,路径是否正确,部分物联网平台要求
ws://而不是wss://。 - 消息收不到:检查发布和订阅的主题是否完全一致,MQTT 主题区分大小写,通配符使用要符合规范。
- 容器反复重启:查看
docker logs emqx中的错误,常见原因是内存不足或端口冲突。
另外,如果只是临时调试,不建议把 1883 端口长期暴露在公网。
正式环境应配置用户名密码认证、开启 TLS 加密,并在安全组中限制来源 IP。默认匿名访问只适合内网或短期测试,上线前务必补上认证和访问控制。
效果验证与后续建议
完成以上步骤后,用三个检查点确认服务正常:
- 浏览器能打开
http://云电脑公网IP:18083并登录管理后台。 - 物联网网站或调试工具能成功连接 1883 端口,后台“连接”列表出现该客户端。
- 发布一条测试消息,订阅端能实时收到,消息内容一致。
如果三项都通过,说明云电脑上的 MQTT 服务已经可以支撑物联网网站调试。
后续可以根据设备数量调整 EMQX 的资源配置,或改用 Docker Compose 管理容器,方便升级和迁移。
遇到异常时,优先回看安全组和认证配置,这两个位置出问题的概率最高。