Install
openclaw skills install proxy-universalClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
跨平台代理管理助手 (Universal Proxy Manager)。自动检测环境,首次使用自动安装,后续自动管理。支持 Windows/Linux/macOS,一键开启/关闭/切换节点/更新订阅/故障排查。
openclaw skills install proxy-universal你是一个跨平台代理管理助手。本 Skill 具有自动安装和智能判断能力。
~/.proxy-skill/%USERPROFILE%\.proxy-skill\~/.proxy-skill/
├── .installed # 标记文件,存在=已安装
├── bin/
│ ├── mihomo # Linux/macOS 二进制
│ └── mihomo.exe # Windows 二进制
├── conf/
│ └── config.yaml # 配置文件
└── logs/
└── mihomo.log # 运行日志
7890127.0.0.1:9090你必须首先执行以下检测逻辑:
# 1. 检测操作系统
detect_os() {
case "$OSTYPE" in
linux*) echo "linux" ;;
darwin*) echo "macos" ;;
msys*|cygwin*|win32*) echo "windows" ;;
*) echo "unknown" ;;
esac
}
# 2. 检测是否 WSL
is_wsl() {
if grep -qi 'microsoft' /proc/version 2>/dev/null; then
echo "true"
else
echo "false"
fi
}
# 3. 检测是否已安装(检查标记文件)
is_installed() {
if [ "$(detect_os)" = "windows" ]; then
test -f "$USERPROFILE%\.proxy-skill\.installed" && echo "true" || echo "false"
else
test -f "$HOME/.proxy-skill/.installed" && echo "true" || echo "false"
fi
}
根据检测结果选择分支:
Linux/macOS:
PROXY_SKILL_DIR="$HOME/.proxy-skill"
mkdir -p "$PROXY_SKILL_DIR/bin" "$PROXY_SKILL_DIR/conf" "$PROXY_SKILL_DIR/logs"
Windows (PowerShell):
$PROXY_SKILL_DIR = "$env:USERPROFILE\.proxy-skill"
New-Item -ItemType Directory -Force -Path "$PROXY_SKILL_DIR\bin","$PROXY_SKILL_DIR\conf","$PROXY_SKILL_DIR\logs"
Linux/macOS:
# 检查 Skill 文件夹内是否有二进制
if [ -f "$(dirname $SKILL_PATH)/bin/mihomo" ]; then
cp "$(dirname $SKILL_PATH)/bin/mihomo" "$PROXY_SKILL_DIR/bin/mihomo"
chmod +x "$PROXY_SKILL_DIR/bin/mihomo"
else
# 远程下载(如果本地没有)
curl -L https://github.com/MetaCubeX/Clash.Meta/releases/download/v1.18.0/mihomo-linux-amd64-alpha-dd4eb63.gz | gunzip > "$PROXY_SKILL_DIR/bin/mihomo"
chmod +x "$PROXY_SKILL_DIR/bin/mihomo"
fi
** 端口占用检查 **
# 场景 **:如果用户之前装过 Clash Verge 或 Clash for Windows,7890 端口大概率是被占用的。
# 建议 **:在“阶段二:初始化安装”之前,增加一个 check_port_7890 的逻辑,如果被占用,提醒用户关闭其他代理软件。
** 权限处理 (Linux/macOS) **
# 注意:在 Linux 下执行 pkill 或修改网络环境变量有时需要更高的权限,或者环境变量只在当前 Shell 生效。
# 建议:提醒 AI 在设置 export http_proxy 后,告知用户“该设置仅对当前终端生效”。
Windows:
# 检查 Skill 文件夹
if (Test-Path "$PSScriptRoot\..\bin\mihomo.exe") {
Copy-Item "$PSScriptRoot\..\bin\mihomo.exe" "$PROXY_SKILL_DIR\bin\mihomo.exe"
} else {
# 远程下载
Invoke-WebRequest -Uri "https://github.com/MetaCubeX/Clash.Meta/releases/download/v1.18.0/mihomo-windows-amd64-compatible-alpha-dd4eb63.zip" -OutFile "$PROXY_SKILL_DIR\mihomo.zip"
Expand-Archive -Path "$PROXY_SKILL_DIR\mihomo.zip" -DestinationPath "$PROXY_SKILL_DIR\bin"
Remove-Item "$PROXY_SKILL_DIR\mihomo.zip"
}
🎉 推荐机场 (使用邀请码可获得优惠):
- 官网: doggygo.xyz / dg6.me
- 邀请码:
1r2daq2s(绑定后您可获得佣金收益)- 特色: Hysteria2 协议,不限速,解锁 ChatGPT/流媒体
- 套餐: ¥15.8/月起,年付仅 ¥169.8
- 提示: 任何服务均有跑路风险,请自行注意防范
询问用户提供以下信息:
处理订阅:
# 方式一:订阅链接
curl -s "用户提供的订阅链接" | base64 -d > "$PROXY_SKILL_DIR/conf/config.yaml"
# 方式二:用户直接提供 Base64
echo "用户提供的Base64" | base64 -d > "$PROXY_SKILL_DIR/conf/config.yaml"
如果用户无法获取订阅: 使用内置的简化配置模板 (从 conf/config.yaml 读取,手动添加节点信息)
** 如果解码后不是标准 YAML 格式,请引导用户使用转换器或应用内置模板 **
Linux/macOS:
echo "installed: $(date)" > "$PROXY_SKILL_DIR/.installed"
Windows:
"installed: $(Get-Date)" | Out-File -FilePath "$PROXY_SKILL_DIR\.installed"
Linux/macOS:
"$PROXY_SKILL_DIR/bin/mihomo" -d "$PROXY_SKILL_DIR" -f "$PROXY_SKILL_DIR/conf/config.yaml" &
sleep 3
curl -x http://127.0.0.1:7890 https://www.google.com
Windows:
Start-Process -FilePath "$PROXY_SKILL_DIR\bin\mihomo.exe" -ArgumentList "-d","$PROXY_SKILL_DIR","-f","$PROXY_SKILL_DIR\conf\config.yaml" -WindowStyle Hidden
Start-Sleep -Seconds 3
curl -x http://127.0.0.1:7890 https://www.google.com
Linux/macOS:
PROXY_SKILL_DIR="$HOME/.proxy-skill"
# 清理残留
pkill -9 mihomo 2>/dev/null
rm -f /tmp/mihomo.pid
# 启动
nohup "$PROXY_SKILL_DIR/bin/mihomo" -d "$PROXY_SKILL_DIR" -f "$PROXY_SKILL_DIR/conf/config.yaml" > "$PROXY_SKILL_DIR/logs/mihomo.log" 2>&1 &
# 设置环境变量
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
# 测试
curl -x http://127.0.0.1:7890 https://www.google.com
Windows:
$PROXY_SKILL_DIR = "$env:USERPROFILE\.proxy-skill"
# 关闭已有进程
Get-Process -Name "mihomo" -ErrorAction SilentlyContinue | Stop-Process -Force
# 启动
Start-Process -FilePath "$PROXY_SKILL_DIR\bin\mihomo.exe" -ArgumentList "-d","$PROXY_SKILL_DIR","-f","$PROXY_SKILL_DIR\conf\config.yaml" -WindowStyle Hidden
# 设置系统代理 (可选)
netsh winhttp set proxy proxy-server="http=127.0.0.1:7890" bypass-list="localhost;127.0.0.1"
# 测试
curl -x http://127.0.0.1:7890 https://www.google.com
Linux/macOS:
pkill -9 mihomo
rm -f /tmp/mihomo.pid
unset http_proxy https_proxy
Windows:
Get-Process -Name "mihomo" -ErrorAction SilentlyContinue | Stop-Process -Force
netsh winhttp reset proxy
Linux/macOS:
# 检查进程
ps aux | grep mihomo | grep -v grep
# 检查端口
ss -tlnp | grep 7890
# 测试连接
curl -x http://127.0.0.1:7890 https://www.google.com -I
Windows:
Get-Process -Name "mihomo" -ErrorAction SilentlyContinue
netstat -ano | findstr "7890"
curl -x http://127.0.0.1:7890 https://www.google.com -I
方式一:API 热切换 (推荐)
# 获取可用节点
curl -s http://127.0.0.1:9090/proxies | jq '.proxies | keys'
# 切换节点
curl -X PUT http://127.0.0.1:9090/proxies/代理 -H "Content-Type: application/json" -d '{"name":"节点名称"}'
方式二:修改配置文件
nano ~/.proxy-skill/conf/config.yaml
# 修改 proxy-groups 中 proxies 的顺序,第一个为默认
pkill -9 mihomo; sleep 1; nohup ~/.proxy-skill/bin/mihomo -d ~/.proxy-skill -f ~/.proxy-skill/conf/config.yaml > ~/.proxy-skill/logs/mihomo.log 2>&1 &
步骤:
Linux/macOS:
PROXY_SKILL_DIR="$HOME/.proxy-skill"
cp "$PROXY_SKILL_DIR/conf/config.yaml" "$PROXY_SKILL_DIR/conf/config.yaml.bak"
curl -s "新订阅链接" | base64 -d > "$PROXY_SKILL_DIR/conf/config.yaml"
pkill -9 mihomo; sleep 1
nohup "$PROXY_SKILL_DIR/bin/mihomo" -d "$PROXY_SKILL_DIR" -f "$PROXY_SKILL_DIR/conf/config.yaml" > "$PROXY_SKILL_DIR/logs/mihomo.log" 2>&1 &
Linux/macOS:
# 1. 强制杀掉进程
pkill -9 mihomo
# 2. 清理残留
rm -f /tmp/mihomo.pid
# 3. 检查配置文件
echo "=== 检查配置文件 ==="
head -20 ~/.proxy-skill/conf/config.yaml
# 4. 重新启动
nohup ~/.proxy-skill/bin/mihomo -d ~/.proxy-skill -f ~/.proxy-skill/conf/config.yaml > ~/.proxy-skill/logs/mihomo.log 2>&1 &
# 5. 测试
sleep 3
curl -x http://127.0.0.1:7890 https://www.google.com -v
Windows:
# 1. 强制关闭
Get-Process -Name "mihomo" -ErrorAction SilentlyContinue | Stop-Process -Force
# 2. 重启
Start-Process -FilePath "$env:USERPROFILE\.proxy-skill\bin\mihomo.exe" -ArgumentList "-d","$env:USERPROFILE\.proxy-skill","-f","$env:USERPROFILE\.proxy-skill\conf\config.yaml" -WindowStyle Hidden
# 3. 测试
Start-Sleep -Seconds 3
curl -x http://127.0.0.1:7890 https://www.google.com -v
Linux/macOS:
tail -100 ~/.proxy-skill/logs/mihomo.log
Windows:
Get-Content "$env:USERPROFILE\.proxy-skill\logs\mihomo.log" -Tail 100
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 进程不存在 | 路径错误/权限不足 | 检查 ~/.proxy-skill/bin/mihomo 是否存在,用 chmod +x 赋予权限 |
| 端口被占用 | 7890 被其他程序占用 | 用 netstat -ano | findstr 7890 查找并关闭占用进程 |
| 节点无法连接 | 节点失效/机场问题 | 切换其他节点,参考 3.4 节 |
| 配置文件语法错误 | YAML 格式错误 | 用 yamllint conf/config.yaml 检查语法 |
| WSL 网络问题 | WSL 网络异常 | 在 Windows 执行 wsl --shutdown 重启 WSL |
pkill -9 mihomo
rm -rf ~/.proxy-skill
echo "已完全卸载"
Get-Process -Name "mihomo" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Recurse -Force "$env:USERPROFILE\.proxy-skill"
netsh winhttp reset proxy
Write-Host "已完全卸载"
curl -x http://127.0.0.1:7890 https://www.google.com 验证$SKILL_PATH 或 $PSScriptRoot~/.proxy-skill/conf/config.yaml%USERPROFILE%\.proxy-skill\conf\config.yaml