- 添加 AMT Digest 认证服务 (AmtDigestService) - 添加 AMT 模拟服务用于测试 (AmtMockService) - 更新设备控制器支持 AMT 连接测试和设备信息获取 - 前端添加 AMT 自动添加方式,支持手动输入和凭证选择 - 移除 Basic 认证,仅使用 Digest 认证 - 添加 Apache HttpClient 依赖支持 Digest 认证 - 创建相关文档和测试脚本
243 lines
5.5 KiB
Markdown
243 lines
5.5 KiB
Markdown
# AMT 设备添加功能 - 快速开始
|
||
|
||
## 问题诊断
|
||
|
||
### 超时错误:timeout of 10000ms exceeded
|
||
|
||
这个错误表示无法连接到 AMT 设备。请按以下步骤排查:
|
||
|
||
## 步骤 1:运行快速测试
|
||
|
||
运行 `quick_amt_test.bat` 进行基本连接测试:
|
||
|
||
```batch
|
||
quick_amt_test.bat
|
||
```
|
||
|
||
输入 AMT 设备的 IP 地址,查看测试结果。
|
||
|
||
### 测试结果分析
|
||
|
||
#### 情况 1:Ping 失败
|
||
**问题**:网络不可达
|
||
**解决**:
|
||
- 检查 IP 地址是否正确
|
||
- 检查网络连接
|
||
- 确认设备已开机
|
||
|
||
#### 情况 2:Ping 成功,但端口关闭
|
||
**问题**:AMT 未启用或服务未运行
|
||
**解决**:
|
||
1. 在 AMT 设备上启用 AMT
|
||
2. 检查 AMT 服务状态
|
||
3. 检查防火墙设置
|
||
|
||
#### 情况 3:端口开放,但连接超时
|
||
**问题**:AMT 配置问题或认证失败
|
||
**解决**:
|
||
1. 检查 AMT 用户名和密码
|
||
2. 尝试重启 AMT 服务
|
||
3. 查看 AMT 配置
|
||
|
||
## 步骤 2:使用模拟模式测试功能
|
||
|
||
如果暂时没有真实的 AMT 设备,可以使用模拟模式测试功能:
|
||
|
||
### 启用模拟模式
|
||
|
||
1. **方法 1:修改代码**
|
||
|
||
编辑 `backend/src/main/java/com/soybean/admin/controller/DeviceController.java`:
|
||
|
||
```java
|
||
// 将这一行
|
||
private boolean useMockMode = false;
|
||
|
||
// 改为
|
||
private boolean useMockMode = true;
|
||
```
|
||
|
||
2. **方法 2:使用 API 切换**
|
||
|
||
发送 POST 请求到:
|
||
```
|
||
POST http://localhost:8080/device/amt/toggleMock
|
||
```
|
||
|
||
### 使用模拟模式
|
||
|
||
启用模拟模式后:
|
||
|
||
1. 在设备列表点击"新增设备"
|
||
2. 选择"AMT 自动添加"
|
||
3. 输入任意 IP 地址(如 192.168.1.100)
|
||
4. 用户名:`admin`
|
||
5. 密码:`admin`
|
||
6. 点击"测试连接"
|
||
7. 应该会成功并自动填充设备信息
|
||
|
||
### 模拟模式说明
|
||
|
||
- 模拟模式仅用于测试界面和流程
|
||
- 不会真正连接到 AMT 设备
|
||
- 测试账号:admin/admin
|
||
- 会生成模拟的设备信息
|
||
|
||
## 步骤 3:配置真实 AMT 设备
|
||
|
||
### 3.1 启用 AMT
|
||
|
||
1. **进入 BIOS/UEFI**
|
||
- 重启设备
|
||
- 按 F2 或 Del 进入 BIOS
|
||
|
||
2. **进入 Intel ME 配置**
|
||
- 在 BIOS 中找到 Intel ME 或 AMT 选项
|
||
- 或者在开机时按 Ctrl+P 直接进入 MEBx
|
||
|
||
3. **启用 AMT**
|
||
- Intel(R) ME Configuration
|
||
- Intel(R) AMT Configuration
|
||
- Manageability Feature Selection
|
||
- 选择 "Intel AMT"
|
||
|
||
4. **配置网络**
|
||
- Network Setup
|
||
- TCP/IP Settings
|
||
- 选择 DHCP 或配置静态 IP
|
||
|
||
5. **设置管理员密码**
|
||
- MEBx Password
|
||
- 设置强密码(至少 8 位,包含大小写字母、数字和特殊字符)
|
||
- 记住这个密码!
|
||
|
||
6. **激活 AMT**
|
||
- Activate Network Access
|
||
- 选择激活方式(通常选择 "Host Based")
|
||
|
||
7. **保存并退出**
|
||
- 保存设置
|
||
- 退出并重启
|
||
|
||
### 3.2 验证 AMT 配置
|
||
|
||
在 Windows 上验证 AMT 是否正常运行:
|
||
|
||
```batch
|
||
# 检查 LMS 服务状态
|
||
sc query LMS
|
||
|
||
# 如果服务未运行,启动它
|
||
net start LMS
|
||
|
||
# 检查端口是否监听
|
||
netstat -ano | findstr 16992
|
||
```
|
||
|
||
### 3.3 测试 AMT 连接
|
||
|
||
使用 PowerShell 测试:
|
||
|
||
```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 凭证(推荐)
|
||
|
||
1. 进入"系统设置" > "AMT 设置"
|
||
2. 点击"新增凭证"
|
||
3. 输入凭证名称、用户名和密码
|
||
4. 保存
|
||
|
||
### 4.2 添加 AMT 设备
|
||
|
||
1. 进入"设备管理" > "设备列表"
|
||
2. 点击"新增设备"
|
||
3. 选择"AMT 自动添加"
|
||
4. 输入 IP 地址
|
||
5. 选择认证方式:
|
||
- 使用已保存凭证:从下拉框选择
|
||
- 手动输入:填写用户名和密码
|
||
6. 点击"测试连接"
|
||
7. 连接成功后,确认设备信息
|
||
8. 点击"确定"保存
|
||
|
||
## 常见问题
|
||
|
||
### 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 设备
|
||
- 探索远程控制功能
|
||
|
||
## 获取帮助
|
||
|
||
如果遇到问题:
|
||
1. 查看错误信息
|
||
2. 运行诊断工具
|
||
3. 查阅故障排除文档
|
||
4. 检查 AMT 设备配置
|
||
5. 查看系统日志
|
||
|
||
## 重要提示
|
||
|
||
⚠️ **安全警告**:
|
||
- 使用强密码
|
||
- 限制网络访问
|
||
- 定期更新固件
|
||
- 不要在生产环境使用模拟模式
|