diff --git a/jiangwei-platform/reports/Windows节点无法连通问题报告.md b/jiangwei-platform/reports/Windows节点无法连通问题报告.md new file mode 100644 index 000000000..1602c0649 --- /dev/null +++ b/jiangwei-platform/reports/Windows节点无法连通问题报告.md @@ -0,0 +1,168 @@ +# Windows节点无法连通问题报告 + +## 问题描述 + +**节点名称**:Windows-Test-Node +**IP地址**:192.168.2.33 +**问题类型**:网络连通性故障 +**报告时间**:2026-04-10 21:21 + +--- + +## 网络连通性测试结果 + +### 1. Ping测试 +``` +PING 192.168.2.33 (192.168.2.33): 56 data bytes +Request timeout for icmp_seq 0 +Request timeout for icmp_seq 1 + +--- 192.168.2.33 ping statistics --- +3 packets transmitted, 0 packets received, 100.0% packet loss +``` +**结论**:❌ Ping测试100%丢包,请求超时 + +### 2. SSH连接测试 +``` +ssh: connect to host 192.168.2.33 port 22: Operation timed out +``` +**结论**:❌ SSH连接超时,无法建立连接 + +### 3. ARP表查询 +``` +Command '['arp', '-a']' timed out after 10 seconds +``` +**结论**:❌ ARP表查询超时,未找到该IP的MAC地址记录 + +### 4. 端口扫描测试 +``` +❌ 端口 22: 关闭 ([Errno 64] Host is down) +❌ 端口 3389: 关闭 ([Errno 64] Host is down) +❌ 端口 5000: 关闭 ([Errno 64] Host is down) +❌ 端口 8080: 关闭 ([Errno 64] Host is down) +``` +**结论**:❌ 所有测试端口均显示"主机已关闭" + +--- + +## 网络接口状态 + +### 主机网络接口(macOS) +``` +en1: flags=8863 mtu 1500 + options=6460 + ether ae:b2:28:74:80:7b + inet6 fe80::18c9:1e9b:f95a:54b4%en1 prefixlen 64 secured scopeid 0x10 + inet 192.168.2.153 netmask 0xffffff00 broadcast 192.168.2.255 + media: autoselect + status: active +``` +**结论**:✅ 无线网卡已正常连接到Wi-Fi网络,IP地址192.168.2.153 + +--- + +## 问题分析与诊断 + +### 可能的原因 + +1. **Windows节点未开机**:物理机器可能处于关机或休眠状态 +2. **网络连接失败**:可能是网线未连接或Wi-Fi未接入网络 +3. **IP地址配置错误**:Windows节点的IP地址可能已发生变化 +4. **系统故障**:Windows节点可能出现硬件或系统故障 + +### 错误信息解析 + +所有测试方法均显示相似的错误: +- Ping:`Request timeout`(请求超时) +- SSH:`Operation timed out`(操作超时) +- 端口扫描:`Host is down`(主机已关闭) + +**核心问题**:Windows节点192.168.2.33目前处于不可达状态,可能已关机或与网络断开连接。 + +--- + +## 解决方案与建议 + +### 立即行动(优先级:高) + +1. **物理检查Windows节点**: + - 确认Windows节点是否已开机 + - 检查电源连接状态 + - 确认网线连接是否牢固 + - 检查Wi-Fi连接是否正常 + +2. **重启或唤醒Windows节点**: + - 如果节点已休眠,尝试唤醒 + - 如果节点已关机,重新启动 + +### 网络配置检查(优先级:中) + +3. **在Windows节点上检查网络配置**: + ```powershell + # 查看网络适配器状态 + Get-NetAdapter + + # 查看IP地址配置 + ipconfig /all + + # 测试本地网络连通性 + Test-Connection 192.168.2.153 -Count 4 + ``` + +4. **检查网络设备**: + - 确认路由器/交换机是否正常工作 + - 检查DHCP服务器是否正常分配IP地址 + +### 替代方案(优先级:低) + +5. **使用其他节点**: + - 如果Windows节点无法恢复,考虑使用其他可连接的节点 + - 检查OpenClaw节点配置文件 + - 重新添加可用的测试节点 + +--- + +## 影响评估 + +### 当前受影响的服务 + +- **量化回测任务**:无法在Windows节点上运行回测 +- **数据爬取任务**:无法使用Windows节点进行数据采集 +- **计算密集型任务**:无法利用Windows节点的计算资源 + +### 缓解措施 + +- 使用本地macOS系统进行简单任务测试 +- 考虑使用云服务器作为临时替代方案 +- 调整任务计划,将受影响的任务分配到其他节点 + +--- + +## 后续监控 + +### 定期检查计划 + +1. **恢复后立即验证**:一旦Windows节点恢复,立即运行连通性测试 +2. **每日健康检查**:添加定期检查Windows节点连通性的任务 +3. **网络状态监控**:使用网络监控工具持续跟踪节点状态 + +--- + +## 报告生成信息 + +**报告生成时间**:2026-04-10 21:21 +**报告人**:jiangwei-infra(姜维) +**检查工具**:网络连通性综合测试脚本 +**报告版本**:v1.0 + +--- + +## 联系方式 + +**负责人**:姜维(jiangwei-infra) +**协作人员**: +- 赵云(zhaoyun-data) - 数据获取 +- 庞统(pangtong-fujunshi) - 策略设计 +- 关羽(guanyu-dev) - 风险控制 + +如有紧急情况,请立即通过Sanguo Mail系统联系相关人员。 diff --git a/jiangwei-platform/scripts/check-windows-node.py b/jiangwei-platform/scripts/check-windows-node.py new file mode 100644 index 000000000..eccbbc698 --- /dev/null +++ b/jiangwei-platform/scripts/check-windows-node.py @@ -0,0 +1,117 @@ +#!/usr/bin/env python3 +""" +检查Windows节点网络连通性的脚本 +""" + +import socket +import subprocess +import time + +def test_ping(): + """测试ping命令""" + print("=== 测试ping命令 ===") + try: + result = subprocess.run( + ["ping", "-c", "3", "192.168.2.33"], + capture_output=True, + text=True, + timeout=30 + ) + print("输出:") + print(result.stdout) + if result.returncode == 0: + print("\n✅ Ping测试成功") + else: + print("\n❌ Ping测试失败") + except Exception as e: + print(f"❌ 错误: {e}") + print() + +def test_ssh(): + """测试SSH连接""" + print("=== 测试SSH连接 ===") + try: + result = subprocess.run( + ["ssh", "-o", "ConnectTimeout=5", "administrator@192.168.2.33", "echo 'Connected'"], + capture_output=True, + text=True, + timeout=10 + ) + print("输出:") + print(result.stdout) + if result.returncode == 0: + print("\n✅ SSH连接成功") + else: + print(f"\n❌ SSH连接失败 (代码: {result.returncode})") + print(f"错误: {result.stderr}") + except Exception as e: + print(f"❌ 错误: {e}") + print() + +def test_arp(): + """测试ARP表""" + print("=== 测试ARP表 ===") + try: + result = subprocess.run( + ["arp", "-a"], + capture_output=True, + text=True, + timeout=10 + ) + print("ARP表中是否包含192.168.2.33:") + if "192.168.2.33" in result.stdout: + print("✅ 找到192.168.2.33的ARP记录") + # 提取该IP的MAC地址 + lines = result.stdout.split("\n") + for line in lines: + if "192.168.2.33" in line: + mac = line.split()[3] + print(f"MAC地址: {mac}") + else: + print("❌ 未找到192.168.2.33的ARP记录") + except Exception as e: + print(f"❌ 错误: {e}") + print() + +def test_port_scan(): + """测试端口扫描""" + print("=== 测试端口扫描 ===") + ports_to_test = [22, 3389, 5000, 8080] + + for port in ports_to_test: + try: + sock = socket.create_connection(("192.168.2.33", port), timeout=2) + print(f"✅ 端口 {port}: 开放") + sock.close() + except Exception as e: + print(f"❌ 端口 {port}: 关闭 ({e})") + print() + +def check_network_interface(): + """检查网络接口""" + print("=== 检查网络接口 ===") + try: + result = subprocess.run( + ["ifconfig", "-a"], + capture_output=True, + text=True, + timeout=10 + ) + print("网络接口:") + print(result.stdout) + except Exception as e: + print(f"❌ 错误: {e}") + print() + +if __name__ == "__main__": + print("开始检查Windows节点网络连通性...") + print("=" * 50) + + test_ping() + test_ssh() + test_arp() + test_port_scan() + check_network_interface() + + print("=" * 50) + print("检查完成")