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

 
 
 

Contributors