Files
val-blog/NETWORK.md
T

6.5 KiB
Raw Blame History

NETWORK.md - OpenClaw 网络访问分层与规则

更新时间:2026-03-15

这份文件用于记录 OpenClaw 在当前机器上的网络访问原则,避免以后在“哪些能力该走代理、哪些能力该直连”上反复排查。

核心原则:

默认直连;Telegram、Google 和部分海外访问按需走 mihomo 127.0.0.1:7897


一、当前代理基础设施

mihomo

  • 本地代理端口:127.0.0.1:7897
  • 用途:作为当前机器统一的按需代理出口
  • 备注:Clash Verge 已停用,mihomo 接管 7897

OpenClaw 当前网络思路

  • 不追求 OpenClaw 全局强制走代理
  • 采用“按能力分流”策略:
    • 能直连的尽量直连
    • 明确依赖海外链路的能力显式走代理

二、当前分类

A. 必须代理

这些在当前网络环境下,应默认视为必须走代理:

1. Telegram channel

  • 原因:Telegram API / 连接在当前网络环境下通常无法稳定直连
  • 当前状态:已在 OpenClaw 配置中显式指定代理
  • 配置形态:
    • channels.telegram.proxy = socks5://127.0.0.1:7897

2. Gmail / Google Workspace 相关

  • 包括但不限于:
    • Gmail
    • Google Calendar
    • Google Drive
    • Google Docs
    • 其它 Google API
  • 原因:当前环境下直连容易超时或不可达
  • 结论:应优先走 mihomo 代理

B. 建议直连

这些目前更适合默认直连:

1. OpenClaw 主聊天链路

  • 当前主会话:agent:main:main
  • 当前实测模型:sub2api/gpt-5.4
  • 直连实测结果:成功
  • 代理实测结果:也成功
  • 结论:可直连,不依赖代理

2. sub2api

  • 性质:国内中转端点
  • 当前结论:走代理反而可能更不稳
  • 策略:默认直连

3. lkeap

  • 性质:国内链路 provider
  • 策略:默认直连

4. OpenClaw 本地能力

  • 文件读写
  • exec
  • gateway
  • sessions
  • subagents
  • memory
  • 本地工作流与控制面
  • 策略:不需要代理

C. 视场景而定

这些不应简单归为“全都代理”或“全都直连”,而应根据目标站点决定:

  • 搜索本身通常可用
  • 但搜索结果指向的目标网页如果是海外站,后续访问可能受影响

2. web_fetch

  • 抓国内站:一般直连即可
  • 抓海外站:可能需要代理

3. browser

  • 打开国内站:直连
  • 打开海外站(如 GitHub、Google、海外文档站):视情况走代理

4. 未来新增海外服务

可能包括:

  • Discord
  • Slack(部分场景)
  • X / Twitter
  • OpenAI / Anthropic 直连
  • 海外 webhook / SaaS API
  • 结论:新增后单独归类,不要默认混进“全局代理”

三、当前判断规则

以后遇到新服务 / 新模型 / 新应用时,按下面顺序判断:

Step 1:先判断链路属性

这个服务是:

  • 本地能力?
  • 国内服务?
  • 海外服务?
  • 国内中转?

Step 2:优先实测,不靠印象

至少做两种测试:

  • 直连是否成功
  • 127.0.0.1:7897 是否成功

Step 3:按结果归类

  • 直连稳定,代理更差 → 归入“建议直连”
  • 直连失败/明显不稳 → 归入“必须代理”
  • 两者都可,但目标站点不同 → 归入“视场景而定”

四、当前已确认结论(可直接复用)

已确认必须代理

  • Telegram
  • Gmail / Google Workspace

已确认建议直连

  • sub2api
  • lkeap
  • OpenClaw 主聊天(当前 sub2api/gpt-5.4
  • OpenClaw 本地能力

已确认需要按场景判断

  • web_search
  • web_fetch
  • browser
  • 未来新增海外服务

五、执行准则(Val 网络排查与配置决策规则)

这部分不是背景说明,而是后续遇到网络问题时应优先执行的规则。

规则 1:默认假设“直连优先”,不要先入为主全局挂代理

除非已有明确证据,否则先不要把问题归因为“必须全局代理”。

优先排查:

  • 是本地问题?
  • 是目标服务本身问题?
  • 是单一能力链路问题?
  • 是海外访问问题?

规则 2:按“能力”排查,不按“OpenClaw 整体”排查

正确拆法应是:

  • 主聊天模型链路
  • Telegram 链路
  • Gmail / Google 链路
  • web_search / web_fetch / browser 链路
  • 其它外部集成链路

不要把“某个能力失败”直接等同为“OpenClaw 都需要代理”。

规则 3:新增服务前,先做直连/代理双测

至少做两种测试:

  1. 直连是否成功
  2. 127.0.0.1:7897 是否成功

然后再归类为:

  • 必须代理
  • 建议直连
  • 视场景而定

规则 4:新增 provider / channel / integration 后,立即更新本文件

每次新增能力后,补充:

  • 服务名称
  • 类型(模型 / channel / API / web / 集成)
  • 地域属性(国内 / 海外 / 中转)
  • 直连结果
  • 代理结果
  • 最终推荐策略

规则 5:优先做能力级分流,不做粗暴全局翻墙

目标是:

  • 降低复杂度
  • 降低误判
  • 提高稳定性
  • 让网络问题更容易定位

规则 6:遇到“体感上全部坏了”,先检查三件事

  1. 当前会话实际使用的模型/provider 是什么
  2. 当前失败的是模型链路,还是工具链路 / channel 链路
  3. 代理切换过程中是否出现端口无人监听、服务重启、短时超时

规则 7Telegram / Google 作为已知高优先级代理对象优先处理

当相关能力异常时,优先检查:

  • mihomo 是否运行
  • 127.0.0.1:7897 是否可用
  • 相关配置是否显式指向代理

六、后续维护原则

原则 1:不要把“OpenClaw 要不要走代理”当成全局问题

正确问题应当是:

OpenClaw 的哪些能力需要代理,哪些能力不需要?

原则 2:新增模型 / 渠道 / 集成时,及时更新本文件

每次新增能力后,补充:

  • 服务名称
  • 是否必须代理
  • 测试结论
  • 推荐策略

原则 3:优先做能力级分流,不做粗暴全局翻墙

目标是:

  • 降低复杂度
  • 降低误判
  • 提高稳定性
  • 让网络问题更容易定位

七、建议的后续扩展字段(以后可加)

后面如果服务和模型越来越多,可以在本文件中追加表格字段:

名称 类型 地域属性 直连结果 代理结果 结论 备注

适合记录:

  • 新模型 provider
  • 新 channel
  • 新 skill 的外部 API
  • 新 webhook / SaaS 集成

一句话总纲

OpenClaw 默认直连;Telegram、Google 和部分海外访问按需走 mihomo 127.0.0.1:7897