目录
2.设备连接成功但订阅/发布失败(Authorization/Policy 问题)

1.设备无法连接 MQTT / TLS 握手失败
现象:设备启动后无法连接,或者连接后立即断开、看不到连接成功日志。 可能原因:
-
使用的 endpoint 地址错误,或者少了
-ats后缀。 (AWS 文档) -
时间同步出错,设备的系统时间严重偏差,导致 TLS 握手失败。
-
设备使用的 CA 根证书不正确或过期。 (repost.aws)
-
TLS 版本不符合要求(AWS IoT 目前要求 TLS 1.2 或更高)。 (repost.aws)
-
MQTT Client ID 重复或与已连接客户端冲突。 (Cirrus Link Forum)
-
网络防火墙或代理拦截了 8883 端口或 TLS 握手被阻断。 解决方案:
(1)使用 AWS CLI 获取正确 endpoint:
aws iot describe-endpoint --endpoint-type iot:Data-ATS
确认设备代码中 pHostURL 或客户端连接使用的地址完全一致。 (AWS 文档)
(2)确保设备的系统时间正确(使用 NTP 同步)。
(3)下载正确的根证书(例如 AmazonRootCA1.pem),并在设备中使用。
(4)确保协议为 TLS 1.2 或更高,并配置 SNI(Server Name Indication)使用 endpoint 域名。 (AWS 文档)
(5)确保每个设备使用 唯一的 ClientID,避免与其他客户端冲突。
(6)如果在受限网络环境中(如 LTE-M、NB-IoT、企业防火墙),建议测试 MQTT over WebSocket(端口 443)作为备选。
(7)开启设备端及 AWS IoT 日志查看握手失败原因。可在 AWS 文档中查找 Diagnosing connectivity issues。 (AWS 文档)
2.设备连接成功但订阅/发布失败(Authorization/Policy 问题)
现象:设备连接后无法 publish 或 subscribe,或者收到 AUTHORIZATION_FAILURE、SUBNACK 返回失败。 可能原因:

最低0.47元/天 解锁文章
785

被折叠的 条评论
为什么被折叠?



