网络问题疑难解答
诊断和解决网络问题可能非常困难。 例如,你可能会发现 Wi-Fi 网络在本地正常工作,但与 Internet 断开连接。 在这种情况下,你可能会发现 Azure Sphere 设备未正确更新。 本主题提供了一些建议,可帮助诊断网络问题。
检查网络接口状态
使用 PowerShell、Windows 命令提示符或 Linux 命令行界面打开命令行界面。
运行 az sphere device network list-interfaces ,列出附加设备的网络接口的详细信息。
输出显示为设备设置的所有接口。 对于设备上的每个接口,输出显示以下内容:
[ { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "azspheresvc", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "192.168.35.2" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "b2:30:bb:f0:d1:44", "interfaceName": "eth0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": null, "interfaceName": "lo", "interfaceUp": true, "ipAcquired": false, "ipAddresses": [ "127.0.0.1" ], "ipAssignment": null }, { "connectedToInternet": false, "connectedToNetwork": false, "hardwareAddress": "00:02:b5:03:69:ea", "interfaceName": "wlan0", "interfaceUp": true, "ipAcquired": false, "ipAddresses": null, "ipAssignment": "dynamic" } ]
验证接口的以下设置是否为 True。
网络接口向上。 如果此设置为 False:
- 检查使用接入点的本地设备是否已连接。 有关详细信息,请参阅 Networking_IsNetworkingReady 函数。
- 检查网络接口是否已启用。 可以使用 az sphere device network enable 命令或使用 Networking_SetInterfaceState 函数 API 来启用所需的接口。
已连接到网络。 如果此设置为 False:
- 运行 az sphere device wifi show-status ,检查 Wi-Fi SSID 值是否与设备 Wi-Fi 设置匹配。
- 扫描网络以验证设备设置中的 SSID 是否与网络上的 SSID 匹配。 有关详细信息,请参阅 wifi scan 命令。
- 如果 Wi-Fi 网络的 SSID 已隐藏,并且应用程序依赖于目标扫描,请检查是否 已启用目标扫描 。
获取的 IP 地址。 如果此设置为 False:
- 等待建立连接。
- 检查网络以查看网络上的接入点和其他设备是否已完全连接。 有关详细信息,请参阅 Networking_IsNetworkingReady 函数。
- 检查访问点和网络上允许连接的 IP 地址范围或允许的连接限制。
已连接到 Internet。 如果此设置为 False:
- 检查网络是否已连接到 Internet。
验证 Wi-Fi 状态
- 使用 PowerShell、Windows 命令提示符或 Linux 命令行界面打开命令行界面。
- 运行 az sphere device wifi show-status 以查看有关设备上的当前 Wi-Fi 连接的信息。
应该会看到与下面类似的输出:
az sphere device wifi show-status
{
"SSID": "MSFTGUEST",
"configurationState": "enabled",
"connectionState": "connected",
"frequency": 5660,
"ipAddress": "10.106.106.40",
"keyManagement": "NONE",
"macAddress": "00:02:b5:03:69:ea",
"mode": "station",
"securityState": "open",
"wpaState": "COMPLETED"
}
如果连接状态设置为已断开连接,请在设备上启用 Wi-Fi。
验证网络状态
运行 az sphere device network show-status 以查看附加设备的网络状态。
应该会看到与下面类似的输出:
az sphere device network show-status
{
"deviceAuthenticationIsReady": false,
"networkTimeSync": "incomplete",
"proxy": "disabled"
}
- 如果 设备身份验证就绪 返回 False,
- 如果网络时间同步状态返回不完整,
- 等待建立连接。
- 确保网络配置为允许入站和出站流量。 有关详细信息,请参阅 端口和协议。
验证防火墙设置
如果应用程序无法连接到远程主机:
- 检查应用程序的防火墙设置。
应用程序 清单 必须通过设置
AllowedConnections
功能来指定允许应用程序连接到的主机名或 IP 地址。 - 如果应用程序已配置为执行 服务发现,除了应用程序清单中的条目外,发现的终结点还应列在防火墙配置中。
如果远程主机无法连接到服务器应用程序:
- 检查应用程序的防火墙设置。
应用程序 清单 必须通过设置
AllowedTcpServerPorts
和功能来指定应用程序为入站连接打开的 UDP 和AllowedUdpServerPorts
TCP 端口。
如果仍然遇到困难:
- 运行 az sphere device network list-firewall-rules,并验证防火墙规则和应用程序清单文件中的 IP 地址是否匹配。
- 检查系统默认连接是否默认存在。
获取网络诊断
发生网络故障时,可以通过两种方式获取有关失败的诊断信息:通过调用 WifiConfig API 获取,也可以从命令行获取。
高级应用程序可以调用 WifiConfig_GetNetworkDiagnostics 来收集有关问题的信息。 此函数返回一个 WifiConfig_NetworkDiagnostics
结构,该结构包含有关指定网络上的最新失败的详细信息。 将诊断结构中的信息与用于诊断和恢复常见网络故障的提示结合起来。
WiFi_HighLevelApp 示例演示了如何使用诊断。
还可以使用 az sphere device network show-diagnostics 命令显示有关上次错误的诊断信息。
网络连接不正确
如果设备连接到不正确的网络,或已连接但属性有错误,请确保网络配置正确。 如果更改了配置,则必须重新进行加载。 在应用程序中,调用WifiConfig_ReloadConfig或在命令行上,使用 az sphere device wifi reload-config 命令重新加载当前配置。 要确保网络配置在重新启动后仍然存在,应用可以调用 WifiConfig_PersistConfig。
更新根 CA 证书时出现问题
如果在更新根 CA 证书后设备无法连接到 EAP-TLS 网络,请从 WifiConfig_SetNetworkEnabled 函数返回的状态开始。
如果状态指示根 CA 证书错误,则可能是以下原因之一:
- 在更新过程中,RADIUS 服务器上的旧根 CA1 是否过期或发生了更改? 如果是这样,则新的根 CA2 可能不正确。
- 服务器端是否出现了一些其他故障? 请与网络管理员联系。 管理员可能使用了其他或不正确的证书颁发机构,并且可能需要集中解决此问题。
如果状态指示客户端证书错误:
- 新 Network2 的配置是否与“Network1”属性不同步? 如果在 Network1 上更改了属性,但你尝试使用 Network2 上的过时属性进行连接,则 Network2 可能无法连接。 确保两个网络的关键属性相同。
- 客户端证书在网络更新过程中是否发生了变化? 检查与 Network1 和 Network2 关联的证书,并确保它们是相同的。 应用可以使用 CertStore API 中的函数来检查证书详细信息。
如果根 CA 和客户端证书都正确,则失败可能与 Wi-Fi 接入点或其他问题相关。
在每次失败后继续检查 WifiConfig_GetNetworkDiagnostics 返回的数据,以详细了解此问题。
更新客户端证书时出现问题
如果在更新客户端证书后设备无法连接到 EAP-TLS 网络,请从 WifiConfig_SetNetworkEnabled 函数返回的状态开始。
如果状态指示客户端证书错误:
- 恢复到以前的证书,然后尝试重新连接。 成功指示新客户端证书出现问题;故障指示新证书无效,或旧证书在过渡期内过期。
如果状态指示某些其他类型的错误:
- 网络是否遇到其他问题? 继续尝试使用任一客户端证书连接。
在每次失败后继续检查 WifiConfig_GetNetworkDiagnostics 返回的数据,以详细了解此问题。
连接到未广播 SSID 的 5GHz 网络时出现问题
MT3620 有一个已知问题,设备可能无法连接到 5GHz 网络,尽管使用 目标扫描,但无法广播 SSID。 建议不要禁用 SSID 广播或在仅限 2.4GHz 的网络上执行此操作。