Azure IoT Hub连接失败:No route to host错误求助
排查Azure IoT Hub "No route to host" 连接错误
错误详情
请求失败: HTTPSConnectionPool(host='ih1-das-pr-1wp.azure-devices.net', port=443): Max retries exceeded with url: /devices/R0664654-1WP/messages/events/?api-version-2018-86-30
(由NewConnectionError引起:('<urllib3.connection.HTTPSConnection object at 0x7fa0696390>: 无法建立新连接: [Errno 113] No route to host'))
排查步骤
1. 验证基础网络连通性
- 测试域名解析:执行
nslookup ih1-das-pr-1wp.azure-devices.net或dig ih1-das-pr-1wp.azure-devices.net,确认能解析到有效IP地址。如果解析失败,尝试切换公共DNS(如8.8.8.8)再测试。 - 测试端口可达性:用
telnet ih1-das-pr-1wp.azure-devices.net 443或curl -v https://ih1-das-pr-1wp.azure-devices.net:443验证443端口是否能连通。如果telnet无法建立连接,说明网络层面存在拦截。
2. 检查本地防火墙/安全组
- Linux环境:检查iptables/ufw规则,确认存在允许出站443端口的规则,或未阻止目标IoT Hub的IP/域名。
- Windows环境:在防火墙高级设置中,查看出站规则是否拦截了HTTPS(443)流量或目标地址。
3. 排查网络设备限制
如果处于企业网络环境,联系网络管理员确认:
- 网关、路由器是否允许访问Azure IoT Hub的IP范围(可在Azure门户IoT Hub的「网络」选项卡中获取对应IP段)。
- 网络防火墙是否存在出站规则阻止443端口或目标域名。
4. 检查代理配置
若客户端使用代理服务器:
- 确认代理地址、端口、认证信息配置正确。
- 验证代理是否允许访问
ih1-das-pr-1wp.azure-devices.net域名。
5. 确认IoT Hub网络配置
登录Azure门户,进入目标IoT Hub的「网络」设置:
- 若设置为「选定网络」,需将客户端的公网IP添加到允许列表中。
- 若设置为「所有网络」,则此环节无问题。
额外提示
注意请求URL中的API版本参数存在错误:api-version-2018-86-30应为api-version=2018-06-30(参数名和值之间是等号,版本号日期合法),虽然此错误不会直接导致"No route to host",但修复后可避免后续连接成功后的API报错。
内容的提问来源于stack exchange,提问作者Rajesh Chaudhari
相关产品推荐
相关产品推荐

