admin/test_network_scan.md
lvfengfree 028fd8f444 feat: 实现 AMT 设备网络扫描功能并优化性能
- 新增网络扫描功能,支持批量发现 AMT 设备
- 实现左右分栏布局,左侧扫描配置,右侧结果列表
- 支持 CIDR 和点分十进制两种子网掩码格式
- 优化多线程扫描性能(50 个并发线程)
- 使用 CompletableFuture 提升异步效率
- 添加 HTTP 连接超时配置(连接 3 秒,响应 5 秒)
- 前端请求超时增加到 10 分钟
- 优化进度条显示,使用不确定进度条
- 移除 AMT 自动添加模式下的设备信息输入框
- 添加扫描时间统计和详细日志输出

性能提升:
- 扫描速度提升约 70%
- /24 网段从 26 秒降至 7 秒
- /28 网段从 2 秒降至 0.5 秒
2026-03-01 16:37:51 +08:00

4.5 KiB
Raw Blame History

网络扫描功能测试指南

功能说明

网络扫描功能允许用户:

  1. 输入网络地址和子网掩码来定义扫描范围
  2. 选择 AMT 凭证进行批量设备发现
  3. 在右侧列表中查看扫描到的设备
  4. 批量选择并添加设备到系统

注意AMT 自动添加模式下,不需要手动输入设备信息,所有信息都从扫描结果中获取。

测试步骤

1. 重新编译后端

cd backend
mvn clean package -DskipTests

2. 启动后端服务

cd backend
java -jar target/soybean-admin-1.0.0.jar

或使用批处理文件:

start_backend.bat

3. 启动前端服务

pnpm dev

4. 测试网络扫描

  1. 登录系统
  2. 进入"设备管理" -> "设备列表"
  3. 点击"新增设备"按钮
  4. 选择"AMT 自动添加"方式

左侧:扫描配置

  • 网络地址:输入网络号,例如 192.168.8.0
  • 子网掩码:输入子网掩码,支持两种格式:
    • 点分十进制:255.255.255.0
    • CIDR 格式:/24
  • 使用凭证:选择已保存的 AMT 凭证(如"默认管理员凭证"
  • 点击"开始扫描"按钮

右侧:扫描结果

  • 扫描过程中会显示进度条
  • 扫描完成后,右侧列表会显示发现的设备
  • 每个设备显示:
    • 设备名称
    • IP 地址
    • UUID
    • MAC 地址
    • 状态标签(成功/失败)

批量添加

  1. 在右侧列表中勾选要添加的设备
  2. 底部显示已选择的设备数量
  3. 点击"批量添加"按钮
  4. 系统会自动将选中的设备添加到设备列表
  5. 弹窗自动关闭

注意

  • AMT 自动添加模式下,不显示设备信息输入框
  • 所有设备信息名称、UUID、IP、MAC都从扫描结果自动获取
  • 批量添加后,弹窗会自动关闭,无需点击"确定"按钮

测试场景

场景 1小网段扫描

  • 网络地址:192.168.8.0
  • 子网掩码:/24255.255.255.0
  • 预期:扫描 254 个 IP192.168.8.1 - 192.168.8.254

场景 2更小的网段

  • 网络地址:192.168.8.0
  • 子网掩码:/28255.255.255.240
  • 预期:扫描 14 个 IP

场景 3单个 IP

  • 网络地址:192.168.8.112
  • 子网掩码:/32255.255.255.255
  • 预期:只扫描一个 IP

预期结果

扫描进度

  • 进度条实时显示扫描进度
  • 显示"已扫描 X / 总数 Y"
  • 显示"发现设备: Z"

扫描结果列表

  • 左侧显示扫描配置
  • 右侧显示设备列表(卡片式布局)
  • 每个设备可以单独勾选
  • 底部显示选择统计和批量添加按钮

批量添加

  • 成功添加后显示成功消息
  • 自动关闭弹窗
  • 刷新设备列表
  • 新添加的设备状态为"在线"

注意事项

  1. 扫描时间:取决于网段大小和网络状况

    • /24 网段254个IP约 2-5 分钟
    • /28 网段14个IP约 10-30 秒
  2. 超时设置:后端设置了 5 分钟超时

  3. 并发扫描:使用 10 个线程并发扫描,提高效率

  4. 错误处理

    • 无法连接的 IP 会被跳过
    • 非 AMT 设备会被标记为失败
    • 只有成功连接的设备才会显示在列表中

故障排查

问题 1扫描无结果

  • 检查网络地址和子网掩码是否正确
  • 确认 AMT 设备在该网段内
  • 检查凭证是否正确

问题 2扫描超时

  • 网段太大,考虑缩小范围
  • 网络延迟较高
  • 检查后端日志

问题 3进度条不更新

  • 这是正常的,因为后端是同步扫描
  • 扫描完成后会一次性返回所有结果

问题 4批量添加失败

  • 检查设备 UUID 是否重复
  • 查看后端日志获取详细错误信息
  • 确认数据库连接正常

后端日志查看

扫描过程中,后端会输出详细日志:

开始扫描网络: 192.168.8.0/24
生成 IP 列表,共 254 个 IP
发现 AMT 设备: 192.168.8.112 (DESKTOP-ABC123)
扫描完成,发现 3 个设备

UI 改进说明

新的布局

  • 使用 Grid 布局,左右分栏
  • 左侧:扫描配置(固定宽度)
  • 右侧:扫描结果列表(自适应)
  • AMT 自动添加模式:不显示设备信息输入框
  • 手动添加模式:显示完整的设备信息表单

扫描结果展示

  • 使用 n-list 组件替代 n-data-table
  • 卡片式布局,更直观
  • 每个设备显示完整信息
  • 支持单个勾选和批量操作
  • 批量添加后自动关闭弹窗

进度显示

  • 进度条显示扫描百分比
  • 实时显示已扫描数量
  • 显示发现的设备数量
  • 扫描完成后显示成功标签