跳到主要内容

检测域名和端口连通性

核心概念:设备管理 | 检测域名和端口连通性 | 概览

当设备无法连接服务器或心跳异常时,可以通过以下步骤检测本地网络与服务器端口的连通性。本指南提供了 Windows 和 Linux 系统下的检测方法。


核心概念:设备管理 | 检测域名和端口连通性 | 检测目标

检测目标

在进行网络连通性检测时,我们需要检测以下服务器地址和端口的连通性:

  • 域名 1: heartbeat.dnsyc.top (端口: 8743)
  • 域名 2: heartbeat.akrdinfo.cn (端口: 8743)
  • 旧版 IP: 47.251.5.25 (端口: 8742)

核心概念:设备管理 | 检测域名和端口连通性 | 预期结果

预期结果

在检测完成后,如果网络连通正常,执行命令后服务器会返回如下 JSON 数据:

{"code":700,"data":null,"msg":"Device does not exist"}
说明

返回 Device does not exist (设备不存在) 说明网络连接是通畅的,服务器成功接收到了请求并进行了处理。 如果出现 Connection refusedTimed out 或无法解析域名等错误,则说明网络存在问题。


核心概念:设备管理 | 检测域名和端口连通性 | Windows 系统操作指南

Windows 系统操作指南

Windows 系统的检测操作:以下是 Windows 系统下的网络连通性检测步骤。


核心概念:设备管理 | 检测域名和端口连通性 | 1. 打开命令行工具 (CMD)

1. 打开命令行工具 (CMD)

Windows 系统打开 CMD 的操作:在 Windows 系统中,打开命令行工具的步骤如下:

  1. 按下键盘上的 Win + R 键,打开"运行"对话框。
  2. 输入 cmd 并按下回车键,打开命令提示符窗口。

核心概念:设备管理 | 检测域名和端口连通性 | 2. 执行检测命令

2. 执行检测命令

CMD 中执行检测命令的操作:在 CMD 窗口中,请根据需要检测的地址,复制以下命令并在 CMD 窗口中粘贴执行(点击鼠标右键即可粘贴)。

检测域名 1 (heartbeat.dnsyc.top)

curl --location --request GET "http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=" ^
--header "api-version: 47" ^
--header "deviceToken;" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Accept: */*" ^
--header "Cache-Control: no-cache" ^
--header "Host: heartbeat.dnsyc.top:8743" ^
--header "Connection: keep-alive"

检测域名 2 (heartbeat.akrdinfo.cn)

curl --location --request GET "http://heartbeat.akrdinfo.cn:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=" ^
--header "api-version: 47" ^
--header "deviceToken;" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Accept: */*" ^
--header "Cache-Control: no-cache" ^
--header "Host: heartbeat.akrdinfo.cn:8743" ^
--header "Connection: keep-alive"

检测旧版 IP (47.251.5.25)

curl --location --request GET "http://47.251.5.25:8742/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=" ^
--header "api-version: 47" ^
--header "deviceToken;" ^
--header "User-Agent: Apifox/1.0.0 (https://apifox.com)" ^
--header "Accept: */*" ^
--header "Cache-Control: no-cache" ^
--header "Host: 47.251.5.25:8742" ^
--header "Connection: keep-alive"

核心概念:设备管理 | 检测域名和端口连通性 | 3. windows 执行结果示例

3. windows 执行结果示例

Windows 检测结果的示例:Windows 系统下的执行结果示例如下:

windows 执行结果示例


核心概念:设备管理 | 检测域名和端口连通性 | Linux 系统操作指南

Linux 系统操作指南

以下是 Linux 系统下的网络连通性检测步骤。


核心概念:设备管理 | 检测域名和端口连通性 | 1. 打开终端

1. 打开终端

Linux 系统打开终端的操作:在您的 Linux 系统中打开终端 (Terminal)。


核心概念:设备管理 | 检测域名和端口连通性 | 2. 执行检测命令

2. 执行检测命令

在 Linux 终端中,复制以下命令并在终端中执行。

检测域名 1 (heartbeat.dnsyc.top)

curl --location --request GET 'http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=' \
--header 'api-version: 47' \
--header 'deviceToken;' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Cache-Control: no-cache' \
--header 'Host: heartbeat.dnsyc.top:8743' \
--header 'Connection: keep-alive'

核心概念:设备管理 | 检测域名和端口连通性 | 3. Linux 执行结果示例

3. Linux 执行结果示例

Linux 检测结果的示例:Linux 系统下的执行结果示例如下:

Linux 执行结果示例

检测域名 2 (heartbeat.akrdinfo.cn)

curl --location --request GET 'http://heartbeat.akrdinfo.cn:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=' \
--header 'api-version: 47' \
--header 'deviceToken;' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Cache-Control: no-cache' \
--header 'Host: heartbeat.akrdinfo.cn:8743' \
--header 'Connection: keep-alive'

检测旧版 IP (47.251.5.25)

curl --location --request GET 'http://47.251.5.25:8742/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:33/1111?a=&b=' \
--header 'api-version: 47' \
--header 'deviceToken;' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Accept: */*' \
--header 'Cache-Control: no-cache' \
--header 'Host: 47.251.5.25:8742' \
--header 'Connection: keep-alive'

核心概念:设备管理 | 检测域名和端口连通性 | 3. Linux 执行结果示例

3. Linux 执行结果示例

Linux 系统下的执行结果示例如下:

Linux 执行结果示例


核心概念:设备管理 | 检测域名和端口连通性 | 进阶:检测心跳接口业务逻辑

进阶:检测心跳接口业务逻辑

如果上述端口连通性检测通过(即网络通畅),但设备仍无法正常工作,可以通过模拟设备心跳请求来进一步排查业务逻辑或设备端问题。


核心概念:设备管理 | 检测域名和端口连通性 | 1. 检测目标

1. 检测目标

通过模拟设备向服务器发送心跳请求,验证:

  1. 服务器心跳接口是否能正常响应业务请求。
  2. 验证数据链路是否畅通(从请求到数据库更新)。

核心概念:设备管理 | 检测域名和端口连通性 | 2. 准备工作

2. 准备工作

在执行检测前,请准备好以下信息:

  • MAC 地址: 需要验证的设备 MAC 地址(例如:2C:00:D3:66:66:35
  • CPUID: 设备的 CPUID(例如:2c74210f0144c6740000ac0000000000

请求地址模板: http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/{MAC}/{CPUID}


核心概念:设备管理 | 检测域名和端口连通性 | 3. 操作指南

3. 操作指南

支持通过浏览器、Windows 命令行或 Linux 终端进行测试。

方式一:浏览器测试(推荐)

最简单的测试方式。直接在浏览器地址栏输入替换了 MAC 和 CPUID 的 URL。

示例 URL: http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:35/2c74210f0144c6740000ac0000000000

请将上面的 MAC 和 CPUID 替换为您实际要测试的设备信息。

方式二:Windows 命令行 (CMD)

curl --location --request GET "http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:35/2c74210f0144c6740000ac0000000000"

(请替换命令中的 MAC 和 CPUID)

方式三:Linux 终端

curl --location --request GET 'http://heartbeat.dnsyc.top:8743/app-api/task/deviceHeartBeat/v2/2C:00:D3:66:66:35/2c74210f0144c6740000ac0000000000'

(请替换命令中的 MAC 和 CPUID)


核心概念:设备管理 | 检测域名和端口连通性 | 4. 结果验证

4. 结果验证

接口响应验证

请求成功后,服务器应返回类似如下的 JSON 数据(HTTP 状态码 200):

{"code":200,"data":[{"type":1,"param":[1,150]},{"type":2,"param":[1,240]},{"type":3,"param":[1,10080]},{"type":4,"param":[1,90]},{"type":5,"param":[1,5]},{"type":6,"param":[1,240]},{"type":7,"param":[1,30]},{"type":8,"param":[1,5]},{"type":9,"param":[1,5]},{"type":10,"param":[1,90]}],"msg":"","deviceToken":null}
  • code: 200 表示接口调用成功。
  • data: 返回的是设备的心跳配置参数。

数据更新验证

接口请求成功后,请前往 设备信息管理 页面,查找该设备,查看列表中的 "最后一次心跳时间" 字段。

  • 如果该时间已更新为当前时间,说明整个心跳流程(请求 -> 处理 -> 入库)完全正常。

核心概念:设备管理 | 检测域名和端口连通性 | 5. 故障排查分析

5. 故障排查分析

根据测试结果,可以进行以下故障定位:

  1. 如果浏览器/命令访问心跳接口失败

    • 可能原因:服务器故障、DNS 解析问题、或客户端本地网络故障。
    • 建议:客户端尝试切换网络(如使用手机热点)再次访问。
    • 判断:如果切换网络后能正常访问,则 90% 以上概率是客户端原网络存在问题(如防火墙拦截、运营商限制等)。
  2. 如果浏览器/命令访问成功,但设备实际上报失败

    • 现象:手动模拟请求能更新“最后一次心跳时间”,但设备自动运行时不更新。
    • 可能原因
      • 设备所在的局域网网络有问题(虽然您电脑能连,但设备可能连不上,或者设备网络配置有误)。
      • 设备端的 UOTA 程序或心跳程序运行异常。
    • 建议:检查设备网络连接,检查设备日志及 UOTA 程序状态。

总结:从常见现象来看,如果切换网络环境后批量恢复正常,大概率是网络故障引起的。

AI 问答