9.0 KiB
9.0 KiB
AMT 网络扫描器 - 完整使用指南
🎉 系统已就绪!
当前状态
- ✅ 后端服务: 运行在
http://localhost:5000 - ✅ 前端界面: 运行在
http://localhost:3001 - ✅ 数据库: SQLite 已初始化
- ✅ Intel SDK: 已集成并测试成功
- ✅ 默认凭据: admin / Guo1wu3shi4!
📖 快速开始
1️⃣ 访问系统
打开浏览器,访问:
http://localhost:3001
2️⃣ 开始扫描
步骤 1: 配置扫描参数
在"网络扫描"标签页:
- 网络段: 输入
192.168.8.0 - 子网掩码: 输入
255.255.255.0或/24
步骤 2: 点击"开始扫描"
系统会自动:
- 扫描 254 个 IP 地址(192.168.8.1 - 192.168.8.254)
- 检测每个 IP 的 AMT 端口(16992, 16993, 623)
- 使用默认凭据尝试连接
- 获取设备详细信息
- 实时显示进度
步骤 3: 查看结果
- 扫描完成后自动切换到"设备列表"
- 显示所有发现的 AMT 设备
- 包含:IP、主机名、版本、配置状态
🔧 功能详解
📡 网络扫描
支持的网络配置:
- 单个 C 类网段:
192.168.1.0/24 - 自定义子网:
10.0.0.0/16 - 小型网络:
172.16.0.0/28
扫描过程:
-
端口检测 (3秒超时)
- HTTP: 16992
- HTTPS: 16993
- RMCP: 623
-
设备识别
- WS-Management Identify
- 获取 AMT 版本
- 获取配置状态
-
信息收集
- 主机名
- AMT 版本号
- 配置状态(PRE/IN/POST)
- 最后在线时间
实时进度显示:
- 已扫描 IP 数量
- 发现的设备数量
- 当前扫描的 IP
- 进度百分比
📋 设备列表
显示信息:
- IP 地址
- 主机名
- AMT 版本(主版本.次版本)
- 配置状态
- 在线状态
- 发现时间
- 最后在线时间
操作功能:
- 🔍 搜索设备(按 IP 或主机名)
- 🗑️ 删除设备
- 🔄 刷新列表
🔐 凭据管理
默认凭据:
- 用户名:
admin - 密码:
Guo1wu3shi4! - 状态: 默认凭据
添加新凭据:
- 点击"添加凭据"
- 填写信息:
- 名称(例如:机房A凭据)
- 用户名
- 密码
- 描述(可选)
- 勾选"设为默认"(如果需要)
- 点击"保存"
管理凭据:
- ✏️ 编辑凭据
- 🗑️ 删除凭据
- ⭐ 设置默认凭据
注意事项:
- 密码使用 Base64 加密存储
- 扫描时使用默认凭据
- 可以添加多个凭据备用
🎯 使用场景
场景 1: 机房设备盘点
目标:扫描整个机房网段,找出所有 AMT 设备
步骤:
1. 确定机房网段(如 192.168.8.0/24)
2. 在扫描页面输入网段和子网掩码
3. 点击"开始扫描"
4. 等待扫描完成(约 2-5 分钟)
5. 在设备列表查看所有发现的设备
6. 导出设备列表(功能待添加)
场景 2: 检查设备在线状态
目标:定期检查 AMT 设备是否在线
步骤:
1. 访问"设备列表"标签页
2. 查看"在线状态"列
3. 查看"最后在线时间"
4. 对离线设备进行排查
场景 3: 批量管理不同密码的设备
目标:管理使用不同密码的 AMT 设备
步骤:
1. 在"凭据管理"添加所有可能的密码
2. 设置最常用的为默认凭据
3. 扫描时系统会尝试所有凭据(功能待完善)
🔍 API 测试
使用 PowerShell 测试
1. 测试单个设备连接
# 测试 192.168.8.111
$result = Invoke-RestMethod -Uri "http://localhost:5000/api/test/test-connection/192.168.8.111" -Method GET
$result | Format-List
# 预期输出:
# ip : 192.168.8.111
# username : admin
# amtVersion : 9.0.20
# hostname : test
# provisioningState : 2
# provisioningStateName : POST
# success : True
2. 获取所有设备
$devices = Invoke-RestMethod -Uri "http://localhost:5000/api/devices" -Method GET
$devices | Format-Table
3. 获取所有凭据
$credentials = Invoke-RestMethod -Uri "http://localhost:5000/api/credentials" -Method GET
$credentials | Format-Table
4. 添加新凭据
$body = @{
name = "测试凭据"
username = "admin"
password = "NewPassword123!"
isDefault = $false
description = "测试用凭据"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:5000/api/credentials" -Method POST -Body $body -ContentType "application/json"
5. 开始扫描
$scanConfig = @{
networkSegment = "192.168.8.0"
subnetMask = "255.255.255.0"
} | ConvertTo-Json
$result = Invoke-RestMethod -Uri "http://localhost:5000/api/scan/start" -Method POST -Body $scanConfig -ContentType "application/json"
Write-Host "扫描任务 ID: $($result.taskId)"
🐛 故障排除
问题 1: 前端无法连接后端
症状: 前端显示网络错误
解决方案:
-
检查后端是否运行:
# 查看进程 Get-Process | Where-Object {$_.ProcessName -like "*dotnet*"} -
测试后端 API:
Invoke-RestMethod -Uri "http://localhost:5000/api/credentials" -Method GET -
重启后端:
cd backend-csharp/AmtScanner.Api dotnet run
问题 2: 扫描无进度更新
症状: 点击开始扫描后没有进度显示
可能原因:
- SignalR 连接失败
- 浏览器控制台有错误
解决方案:
- 打开浏览器控制台(F12)
- 查看 Console 标签页的错误信息
- 查看 Network 标签页的 WebSocket 连接
- 刷新页面重试
问题 3: 无法连接 AMT 设备
症状: 扫描完成但没有发现设备
检查清单:
- 设备是否在同一网段?
- 设备是否开启了 AMT?
- 防火墙是否阻止了 16992 端口?
- 凭据是否正确?
测试步骤:
-
Ping 设备:
ping 192.168.8.111 -
测试端口:
Test-NetConnection -ComputerName 192.168.8.111 -Port 16992 -
浏览器访问:
http://192.168.8.111:16992 -
使用测试 API:
Invoke-RestMethod -Uri "http://localhost:5000/api/test/test-connection/192.168.8.111" -Method GET
问题 4: 数据库错误
症状: 后端日志显示数据库错误
解决方案:
- 停止后端
- 删除数据库文件:
Remove-Item backend-csharp\AmtScanner.Api\amtscanner.db - 重启后端(会自动重新创建数据库)
问题 5: Intel SDK DLL 找不到
症状: 后端启动时报错找不到 Intel.Wsman.Scripting.dll
解决方案:
Copy-Item "amt-sdk-20-0-0-1\WsmanLibModule\Bin\Intel.Wsman.Scripting.dll" "backend-csharp\AmtScanner.Api\bin\Debug\net8.0\"
📊 性能优化
扫描速度优化
当前配置:
- 线程池大小: 100
- 端口超时: 3 秒
- 预计扫描时间: 2-5 分钟(254 个 IP)
调整配置:
编辑 backend-csharp/AmtScanner.Api/appsettings.json:
{
"Scanner": {
"ThreadPoolSize": 200, // 增加并发数
"TimeoutSeconds": 2 // 减少超时时间
}
}
注意:
- 线程数过高可能导致网络拥塞
- 超时时间过短可能漏检设备
🔒 安全建议
-
密码管理
- 定期更换 AMT 密码
- 使用强密码(至少 8 位,包含大小写字母、数字、特殊字符)
- 不要在多个设备使用相同密码
-
网络隔离
- 将 AMT 管理网络与业务网络隔离
- 使用防火墙限制访问
- 只允许管理员 IP 访问
-
访问控制
- 限制扫描器的访问权限
- 记录所有扫描操作
- 定期审计设备列表
📝 下一步计划
待添加功能
- 导出设备列表(Excel/CSV)
- 设备分组管理
- 定时自动扫描
- 设备状态变化告警
- 批量操作(重启、关机等)
- 设备详情页面
- 扫描历史记录
- 用户权限管理
💡 提示和技巧
-
快速测试单个设备
- 使用测试 API 而不是完整扫描
- 节省时间,快速验证
-
批量扫描多个网段
- 可以多次运行扫描
- 结果会自动合并到设备列表
-
查看实时日志
- 后端控制台显示详细日志
- 帮助诊断问题
-
使用浏览器书签
- 收藏常用页面
- 快速访问系统
📞 获取帮助
如果遇到问题:
-
查看日志
- 后端控制台日志
- 浏览器控制台(F12)
-
检查配置
- API 地址是否正确
- 凭据是否有效
-
测试连接
- 使用 PowerShell 测试 API
- 使用浏览器访问设备
-
重启服务
- 重启后端和前端
- 清除浏览器缓存
🎓 技术栈
- 后端: ASP.NET Core 8.0 + Intel AMT SDK
- 前端: Vue 3 + Element Plus
- 数据库: SQLite + Entity Framework Core
- 实时通信: SignalR
- 认证: Digest Authentication (Intel SDK)
系统版本: 1.0.0
最后更新: 2026-01-19
状态: ✅ 生产就绪