Skip to content

hiyenwong/openclaw-proxy-plugin

Repository files navigation

OpenClaw Proxy Connector Plugin

让 OpenClaw 所有通讯都通过代理服务器的插件。

功能

  • 🔄 自动路由所有 HTTP/HTTPS 请求通过代理
  • 🌐 支持 HTTP/HTTPS/SOCKS4/SOCKS5 代理
  • 🔐 支持代理认证(用户名/密码)
  • 📋 支持绕过列表(localhost、特定域名等)
  • 🎯 可选择性地应用到特定频道
  • ✅ 内置代理连接测试功能

安装

方法一:从本地目录安装

cd /Users/hiyenwong/ai_projects/openclaw-proxy-plugin
openclaw plugins install -l .

方法二:复制到扩展目录

cp -r /Users/hiyenwong/ai_projects/openclaw-proxy-plugin ~/.openclaw/extensions/proxy-connector

然后编辑 ~/.openclaw/openclaw.json

{
  "plugins": {
    "entries": {
      "proxy-connector": {
        "enabled": true,
        "config": {
          "enabled": true,
          "proxyType": "http",
          "proxyHost": "your-proxy-server.com",
          "proxyPort": 8080,
          "proxyUsername": "your-username",
          "proxyPassword": "your-password",
          "bypassList": ["localhost", "127.0.0.1", "*.local"],
          "applyToChannels": []
        }
      }
    }
  }
}

配置

配置项说明

配置项 类型 默认值 说明
enabled boolean false 启用代理连接器
proxyType string "http" 代理类型:http, https, socks4, socks5
proxyHost string - 代理服务器地址
proxyPort number - 代理服务器端口
proxyUsername string - 代理认证用户名(可选)
proxyPassword string - 代理认证密码(可选)
bypassList array[] [] 绕过代理的域名列表
applyToChannels array[] [] 应用代理的频道(空 = 所有频道)

示例配置

HTTP 代理

{
  "enabled": true,
  "proxyType": "http",
  "proxyHost": "proxy.example.com",
  "proxyPort": 8080
}

SOCKS5 代理(带认证)

{
  "enabled": true,
  "proxyType": "socks5",
  "proxyHost": "socks.example.com",
  "proxyPort": 1080,
  "proxyUsername": "user",
  "proxyPassword": "pass"
}

带绕过列表的配置

{
  "enabled": true,
  "proxyType": "http",
  "proxyHost": "proxy.example.com",
  "proxyPort": 8080,
  "bypassList": ["localhost", "127.0.0.1", "*.internal.com"]
}

使用

测试代理连接

openclaw proxy-connector.test
openclaw proxy-connector.test --url https://httpbin.org/ip

查看代理状态

openclaw proxy-connector

重启网关应用更改

openclaw gateway restart

工作原理

  1. Fetch 覆盖:插件会在启动时覆盖全局 fetch 函数
  2. 路由决策:根据配置的 bypassList 决定是否使用代理
  3. 代理应用:使用对应的代理 Agent 发送请求
  4. 错误处理:代理连接失败时会记录日志但不会中断服务

兼容的频道

目前插件通过覆盖 fetch 来工作,理论上支持所有基于 HTTP/HTTPS 的频道:

  • ✅ Telegram
  • ✅ WhatsApp
  • ✅ Feishu(飞书)
  • ✅ Discord
  • ✅ Slack
  • ✅ 其他基于 HTTP 的频道

故障排查

代理连接失败

  1. 检查代理服务器是否正常运行
  2. 验证代理地址和端口是否正确
  3. 检查代理认证信息(用户名/密码)
  4. 查看日志:openclaw logs --follow

某些请求不走代理

检查 bypassList 配置,确保目标域名不在绕过列表中。

频道无法连接

  1. 确认 applyToChannels 配置(空表示所有频道)
  2. 检查代理服务器是否允许目标域名的连接
  3. 使用测试命令验证代理是否正常工作

开发

依赖

npm install

结构

openclaw-proxy-plugin/
├── index.ts                 # 主入口文件
├── openclaw.plugin.json     # 插件配置和 schema
├── package.json            # NPM 包配置
└── README.md              # 说明文档

扩展

如果需要为特定频道添加原生代理支持(而不仅仅是 fetch 覆盖),可以在 index.ts 中扩展 patchChannelClients 函数。

许可证

MIT License

作者

Hi Yen

About

OpenClawd Proxy Plugin

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published