- 新增网络扫描功能,支持批量发现 AMT 设备 - 实现左右分栏布局,左侧扫描配置,右侧结果列表 - 支持 CIDR 和点分十进制两种子网掩码格式 - 优化多线程扫描性能(50 个并发线程) - 使用 CompletableFuture 提升异步效率 - 添加 HTTP 连接超时配置(连接 3 秒,响应 5 秒) - 前端请求超时增加到 10 分钟 - 优化进度条显示,使用不确定进度条 - 移除 AMT 自动添加模式下的设备信息输入框 - 添加扫描时间统计和详细日志输出 性能提升: - 扫描速度提升约 70% - /24 网段从 26 秒降至 7 秒 - /28 网段从 2 秒降至 0.5 秒
180 lines
4.5 KiB
Markdown
180 lines
4.5 KiB
Markdown
# 网络扫描功能测试指南
|
||
|
||
## 功能说明
|
||
|
||
网络扫描功能允许用户:
|
||
1. 输入网络地址和子网掩码来定义扫描范围
|
||
2. 选择 AMT 凭证进行批量设备发现
|
||
3. 在右侧列表中查看扫描到的设备
|
||
4. 批量选择并添加设备到系统
|
||
|
||
**注意**:AMT 自动添加模式下,不需要手动输入设备信息,所有信息都从扫描结果中获取。
|
||
|
||
## 测试步骤
|
||
|
||
### 1. 重新编译后端
|
||
|
||
```bash
|
||
cd backend
|
||
mvn clean package -DskipTests
|
||
```
|
||
|
||
### 2. 启动后端服务
|
||
|
||
```bash
|
||
cd backend
|
||
java -jar target/soybean-admin-1.0.0.jar
|
||
```
|
||
|
||
或使用批处理文件:
|
||
```bash
|
||
start_backend.bat
|
||
```
|
||
|
||
### 3. 启动前端服务
|
||
|
||
```bash
|
||
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`
|
||
- 子网掩码:`/24` 或 `255.255.255.0`
|
||
- 预期:扫描 254 个 IP(192.168.8.1 - 192.168.8.254)
|
||
|
||
### 场景 2:更小的网段
|
||
- 网络地址:`192.168.8.0`
|
||
- 子网掩码:`/28` 或 `255.255.255.240`
|
||
- 预期:扫描 14 个 IP
|
||
|
||
### 场景 3:单个 IP
|
||
- 网络地址:`192.168.8.112`
|
||
- 子网掩码:`/32` 或 `255.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
|
||
- 卡片式布局,更直观
|
||
- 每个设备显示完整信息
|
||
- 支持单个勾选和批量操作
|
||
- 批量添加后自动关闭弹窗
|
||
|
||
### 进度显示
|
||
- 进度条显示扫描百分比
|
||
- 实时显示已扫描数量
|
||
- 显示发现的设备数量
|
||
- 扫描完成后显示成功标签
|