proxy-auto-config
# 代理自动配置技能
## 概述
本技能自动检测系统中的代理配置,并为 OpenClaw Gateway 提供无缝的代理集成。支持自动检测 v2ray、Clash、SS/SSR 等常见代理工具,自动配置环境变量和 Gateway 设置,确保在网络受限环境下 OpenClaw 能正常工作。
## 核心功能
### 1. 代理自动检测
- **环境变量检测**: 自动读取 HTTP_PROXY、HTTPS_PROXY 等环境变量
- **进程检测**: 检测正在运行的 v2ray、Clash、SS/SSR 等代理进程
- **端口检测**: 扫描常见代理端口(1080-1090, 7890, 10808 等)
- **配置检测**: 读取代理工具的配置文件
### 2. Gateway 集成
- **自动配置**: Gateway 启动时自动应用代理设置
- **环境变量**: 设置 HTTP_PROXY、HTTPS_PROXY 等环境变量
- **插件配置**: 自动更新 Gateway 的 http-proxy 插件配置
- **启动脚本**: 创建带代理的 Gateway 启动脚本
### 3. 自动化管理
- **定时检查**: 每小时自动检查代理状态
- **启动钩子**: Gateway 启动前自动运行代理配置
- **故障恢复**: 代理失效时自动尝试其他配置
- **日志记录**: 详细的代理配置和运行日志
### 4. 多代理支持
- **v2ray/v2rayN**: 支持本地 SOCKS5 代理(端口 10808)
- **Clash**: 支持 HTTP/SOCKS 代理(端口 7890)
- **SS/SSR**: 支持 Shadowsocks 代理
- **系统代理**: 支持系统级别的代理设置
## 快速开始
### 1. 安装技能
```bash
cd ~/.openclaw/workspace/skills/proxy-auto-config
python3 scripts/install_proxy_skill.py
```
### 2. 检测代理
```bash
python3 scripts/proxy_detector.py --configure
```
### 3. 配置 Gateway
```bash
python3 scripts/gateway_proxy_setup.py
```
### 4. 使用代理启动 Gateway
```bash
# 使用包装脚本
openclaw-proxy start
# 或直接设置环境变量
HTTP_PROXY=socks5://127.0.0.1:10808 openclaw gateway start
```
## 工作流程
### 步骤 1: 代理检测
1. 扫描环境变量中的代理设置
2. 检测正在运行的代理进程
3. 检查监听端口的代理服务
4. 读取代理配置文件
5. 选择最佳的代理配置
### 步骤 2: 环境配置
1. 设置 HTTP_PROXY、HTTPS_PROXY 环境变量
2. 配置 Python requests 库的代理设置
3. 设置 Node.js/npm 的代理配置
4. 更新系统代理设置(如果支持)
### 步骤 3: Gateway 配置
1. 更新 Gateway 配置文件(gateway.json)
2. 配置 http-proxy 插件
3. 创建启动脚本
4. 设置 systemd 服务(如果可用)
### 步骤 4: 自动化部署
1. 创建定时检查任务
2. 设置 Gateway 启动钩子
3. 配置日志轮转
4. 启用故障监控
## 使用示例
### ⚠️ 注意:
- 代理端口 `10808` 是示例,请根据你的实际配置修改
- 使用 `~` 代替硬编码的家目录路径
- 所有路径都应该是相对路径或使用环境变量
### 示例 1: 手动检测和配置
```bash
# 检测当前代理
cd ~/.openclaw/workspace/skills/proxy-auto-config
python3 scripts/proxy_detector.py --verbose
# 配置环境
python3 scripts/proxy_detector.py --configure --output ~/.openclaw/proxy_config
# 应用配置
source ~/.openclaw/proxy_config/configure_proxy.sh
```
### 示例 2: Gateway 集成
```bash
# 配置 Gateway 代理
python3 scripts/gateway_proxy_setup.py --config-dir ~/.openclaw
# 查看 Gateway 配置
cat ~/.openclaw/gateway.json | jq '.plugins["http-proxy"]'
# 使用代理启动 Gateway
openclaw-proxy start
```
### 示例 3: 定时检查
```bash
# 查看定时任务
crontab -l | grep openclaw
# 查看检查日志
tail -f ~/.openclaw/logs/proxy_check.log
# 手动运行检查
python3 scripts/proxy_detector.py --configure
```
### 示例 4: 故障排除
```bash
# 测试代理连接
python3 scripts/proxy_detector.py --test --configure
# 查看详细日志
tail -f ~/.openclaw/logs/proxy_setup.log
# 重置配置
rm -rf ~/.openclaw/proxy_config/
python3 scripts/install_proxy_skill.py
```
## 脚本文件
### scripts/ 目录
包含所有可执行的 Python 脚本:
1. **proxy_detector.py** - 核心代理检测脚本
- 自动检测系统代理配置
- 支持多种代理工具(v2ray、Clash、SS/SSR)
- 环境变量和配置文件管理
- 代理连接测试和验证
2. **gateway_proxy_setup.py** - Gateway 代理设置脚本
- 集成 OpenClaw Gateway 代理配置
- 自动更新 gateway.json 配置文件
- 创建启动脚本和 systemd 服务
- 环境变量自动设置
3. **install_proxy_skill.py** - 安装和配置脚本
- 检查系统依赖
- 创建定时任务和启动钩子
- 配置 systemd 集成
- 生成使用指南
### 依赖要求
```bash
# 必需依赖
pip install psutil requests
# 可选依赖(用于高级功能)
pip install jq # JSON 处理
```
## 配置文件结构
### 生成的配置文件
```
~/.openclaw/
├── gateway.json # Gateway 配置文件(自动更新)
├── proxy_config/ # 代理配置目录
│ ├── proxy_config.json # 代理检测结果
│ ├── configure_proxy.sh # 代理配置脚本
│ └── gateway_proxy.json # Gateway 代理配置
├── logs/ # 日志目录
│ ├── proxy_setup.log # 代理设置日志
│ ├── proxy_check.log # 定时检查日志
│ └── gateway_proxy_setup.log # Gateway 设置日志
└── gateway_proxy_hook.sh # Gateway 启动钩子
```
### 系统集成文件
```
~/.local/bin/openclaw-proxy # Gateway 代理包装脚本
~/.config/systemd/user/ # systemd 用户服务
├── openclaw-proxy-check.service
└── openclaw-proxy-check.timer
```
## 在 OpenClaw 中使用
### 自动触发条件
当以下情况发生时自动触发代理配置:
1. **Gateway 启动时** - 自动检测和配置代理
2. **网络环境变化时** - 定时检查代理状态
3. **代理工具启动/停止时** - 自动更新配置
4. **用户手动请求时** - 通过命令触发重新配置
### 响应示例
```markdown
## 代理自动配置完成
✅ 检测到 v2rayN 代理
- 类型: SOCKS5
- 地址: socks5://127.0.0.1:10808
- 进程: xray (PID: 3595)
⚙️ 配置已更新:
- 环境变量: HTTP_PROXY, HTTPS_PROXY
- Gateway 配置: http-proxy 插件
- 启动脚本: ~/.local/bin/openclaw-proxy
🚀 使用代理启动 Gateway:
```bash
openclaw-proxy start
```
📊 状态监控:
- 下次检查: 1小时后
- 日志文件: ~/.openclaw/logs/proxy_check.log
```
### 故障处理
当代理配置失败时:
1. **尝试备用代理** - 自动尝试其他检测到的代理
2. **回退直连模式** - 如果所有代理都不可用
3. **记录错误信息** - 详细的错误日志
4. **通知用户** - 提供修复建议
## 最佳实践
### 1. 代理工具配置
- 保持代理工具稳定运行
- 使用固定端口(如 10808)
- 启用代理工具的自启动
- 定期更新代理订阅
### 2. 技能维护
- 定期运行代理检测
- 监控代理连接状态
- 更新技能到最新版本
- 备份重要配置文件
### 3. 故障排除
- 检查代理工具是否正常运行
- 验证代理端口是否可访问
- 查看技能日志获取详细信息
- 手动测试代理连接
### 4. 性能优化
- 减少不必要的代理检测
- 缓存有效的代理配置
- 优化定时检查频率
- 使用轻量级检测方法
## 扩展和定制
### 添加新的代理支持
1. 在 `proxy_detector.py` 中添加新的检测逻辑
2. 更新代理端口和进程关键词
3. 添加对应的配置文件解析
4. 测试新的代理类型
### 自定义配置
1. 修改默认的代理端口列表
2. 调整检测优先级
3. 自定义日志格式和位置
4. 修改定时检查频率
### 集成其他工具
1. 添加对其他网络工具的支持
2. 集成到系统网络管理器
3. 添加 GUI 配置界面
4. 支持云代理服务
---
**技能状态**: ✅ 已完成并测试
**最后更新**: 2026-03-29
**适用环境**: Linux 系统,支持 systemd,使用 v2ray/Clash 等代理工具
标签
skill
ai