- 添加 AMT Digest 认证服务 (AmtDigestService) - 添加 AMT 模拟服务用于测试 (AmtMockService) - 更新设备控制器支持 AMT 连接测试和设备信息获取 - 前端添加 AMT 自动添加方式,支持手动输入和凭证选择 - 移除 Basic 认证,仅使用 Digest 认证 - 添加 Apache HttpClient 依赖支持 Digest 认证 - 创建相关文档和测试脚本
5.5 KiB
5.5 KiB
AMT 设备添加功能 - 快速开始
问题诊断
超时错误:timeout of 10000ms exceeded
这个错误表示无法连接到 AMT 设备。请按以下步骤排查:
步骤 1:运行快速测试
运行 quick_amt_test.bat 进行基本连接测试:
quick_amt_test.bat
输入 AMT 设备的 IP 地址,查看测试结果。
测试结果分析
情况 1:Ping 失败
问题:网络不可达 解决:
- 检查 IP 地址是否正确
- 检查网络连接
- 确认设备已开机
情况 2:Ping 成功,但端口关闭
问题:AMT 未启用或服务未运行 解决:
- 在 AMT 设备上启用 AMT
- 检查 AMT 服务状态
- 检查防火墙设置
情况 3:端口开放,但连接超时
问题:AMT 配置问题或认证失败 解决:
- 检查 AMT 用户名和密码
- 尝试重启 AMT 服务
- 查看 AMT 配置
步骤 2:使用模拟模式测试功能
如果暂时没有真实的 AMT 设备,可以使用模拟模式测试功能:
启用模拟模式
-
方法 1:修改代码
编辑
backend/src/main/java/com/soybean/admin/controller/DeviceController.java:// 将这一行 private boolean useMockMode = false; // 改为 private boolean useMockMode = true; -
方法 2:使用 API 切换
发送 POST 请求到:
POST http://localhost:8080/device/amt/toggleMock
使用模拟模式
启用模拟模式后:
- 在设备列表点击"新增设备"
- 选择"AMT 自动添加"
- 输入任意 IP 地址(如 192.168.1.100)
- 用户名:
admin - 密码:
admin - 点击"测试连接"
- 应该会成功并自动填充设备信息
模拟模式说明
- 模拟模式仅用于测试界面和流程
- 不会真正连接到 AMT 设备
- 测试账号:admin/admin
- 会生成模拟的设备信息
步骤 3:配置真实 AMT 设备
3.1 启用 AMT
-
进入 BIOS/UEFI
- 重启设备
- 按 F2 或 Del 进入 BIOS
-
进入 Intel ME 配置
- 在 BIOS 中找到 Intel ME 或 AMT 选项
- 或者在开机时按 Ctrl+P 直接进入 MEBx
-
启用 AMT
- Intel(R) ME Configuration
- Intel(R) AMT Configuration
- Manageability Feature Selection
- 选择 "Intel AMT"
-
配置网络
- Network Setup
- TCP/IP Settings
- 选择 DHCP 或配置静态 IP
-
设置管理员密码
- MEBx Password
- 设置强密码(至少 8 位,包含大小写字母、数字和特殊字符)
- 记住这个密码!
-
激活 AMT
- Activate Network Access
- 选择激活方式(通常选择 "Host Based")
-
保存并退出
- 保存设置
- 退出并重启
3.2 验证 AMT 配置
在 Windows 上验证 AMT 是否正常运行:
# 检查 LMS 服务状态
sc query LMS
# 如果服务未运行,启动它
net start LMS
# 检查端口是否监听
netstat -ano | findstr 16992
3.3 测试 AMT 连接
使用 PowerShell 测试:
# 替换为你的 AMT 设备 IP
$amtIP = "192.168.1.100"
# 测试端口
Test-NetConnection -ComputerName $amtIP -Port 16992
# 如果端口开放,尝试连接
$username = "admin"
$password = "your_amt_password"
$base64 = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${username}:${password}"))
$headers = @{
"Authorization" = "Basic $base64"
"Content-Type" = "application/soap+xml;charset=UTF-8"
}
$body = @"
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">
<s:Header/>
<s:Body>
<wsmid:Identify/>
</s:Body>
</s:Envelope>
"@
try {
$response = Invoke-WebRequest -Uri "http://${amtIP}:16992/wsman" -Method POST -Headers $headers -Body $body
Write-Host "连接成功!" -ForegroundColor Green
Write-Host $response.Content
} catch {
Write-Host "连接失败:$($_.Exception.Message)" -ForegroundColor Red
}
步骤 4:在系统中使用
4.1 保存 AMT 凭证(推荐)
- 进入"系统设置" > "AMT 设置"
- 点击"新增凭证"
- 输入凭证名称、用户名和密码
- 保存
4.2 添加 AMT 设备
- 进入"设备管理" > "设备列表"
- 点击"新增设备"
- 选择"AMT 自动添加"
- 输入 IP 地址
- 选择认证方式:
- 使用已保存凭证:从下拉框选择
- 手动输入:填写用户名和密码
- 点击"测试连接"
- 连接成功后,确认设备信息
- 点击"确定"保存
常见问题
Q1: 超时错误怎么办?
A: 运行 quick_amt_test.bat 诊断网络连接问题。
Q2: 401 认证失败怎么办?
A: 检查用户名和密码是否正确,确认 AMT 已正确配置。
Q3: 没有真实 AMT 设备怎么测试?
A: 启用模拟模式,使用 admin/admin 测试。
Q4: 如何知道 AMT 是否已启用?
A:
- 检查 LMS 服务是否运行
- 测试端口 16992 是否开放
- 尝试访问 http://AMT_IP:16992/wsman
Q5: 支持哪些 AMT 版本?
A: 支持 AMT 6.0 及以上版本。
下一步
- 查看
AMT_TROUBLESHOOTING.md了解详细的故障排除 - 查看
AMT_DEVICE_ADD_FEATURE.md了解完整功能说明 - 配置更多 AMT 设备
- 探索远程控制功能
获取帮助
如果遇到问题:
- 查看错误信息
- 运行诊断工具
- 查阅故障排除文档
- 检查 AMT 设备配置
- 查看系统日志
重要提示
⚠️ 安全警告:
- 使用强密码
- 限制网络访问
- 定期更新固件
- 不要在生产环境使用模拟模式