本文主要解决网络问题

网络问题排查

远程 DNS 解析本身是一个非常正确的选择,它能有效防止 DNS 污染,确保 generativelanguage.googleapis.com 能解析到正确的海外 IP。但在你目前的网络环境下,最大的问题是 OpenClaw 根本没能连接上你的代理服务器,导致即便 DNS 是对的,流量也发不出去。

刚才的 netstat 没有返回 LISTENING,说明 HeySocks 的这两个进程(5936 和 17196)只是客户端连接,并不是代理监听服务


🛠️ 终极排查:寻找真正的代理“守门员”

既然 5936 不是监听端口,那说明VPN可能有一个主进程专门负责监听。请直接运行以下命令,列出系统中所有正在监听的端口:

netstat -ano | findstr LISTENING

💡 为什么远程 DNS 没能救场?

  • DNS 只是“地图”:远程 DNS 给了你 Google 的准确坐标(IP),但你的电脑现在还没有连接代理的“车”(代理端口),所以请求还是发不出去。

  • fetch failed 的本质:这通常意味着 Node.js 尝试发起连接,但既没有直连权限,又找不到有效的代理路径。

找到可疑的端口直接执行以下操作

  1. 打开 PowerShell(确保窗口左上角显示的是 Windows PowerShell,而不是 命令提示符)。

  2. 直接粘贴并运行以下这一串复合命令:

$env:HTTPS_PROXY="http://127.0.0.1:1227"; $env:HTTP_PROXY="http://127.0.0.1:1227"; $env:NODE_TLS_REJECT_UNAUTHORIZED="0"; curl.exe -I https://www.google.com

🔍 结果判定

  • 如果返回了 HTTP/2 200:恭喜你!1227 就是正确的代理门牌号。

  • 如果还是 Timeout 或失败:请尝试把上面命令中的 1227 替换为 100008588 再次运行(这两个也是列表中的候选者)。

通过这次排障,你其实已经实践了网络编程中的两个核心概念:

  • 端口监听 (Listening):服务器(你的代理软件)在本地开放一个端口等待连接。

  • 路由转发:你的程序(OpenClaw)将请求通过环境变量重定向到该本地端口,再由代理软件转发至远程服务器(Google)。


🚀 尝试“强力唤醒”:改用 SOCKS 协议

既然你在之前的 HeySocks 设置中看到了 socks5,我们直接让 curl 尝试 SOCKS5 握手,这通常能跳过协议转换的卡顿。

请在 PowerShell 中执行这行命令(针对 10000 端口):

curl.exe --socks5-hostname 127.0.0.1:10000 -I https://www.google.com

注意

  • 如果运行后立刻返回了 200 OK:那么 10000 就是我们要找的英雄!

  • 如果依然闪烁光标超过 10 秒:说明这个端口可能只是一个不转发流量的“黑洞”。


💡 备选方案:换一个端口试试

如果 10000 卡住了,请同样用 SOCKS5 协议测试列表里的 85881227

# 测试 8588
curl.exe --socks5-hostname 127.0.0.1:8588 -I https://www.google.com

# 测试 1227
curl.exe --socks5-hostname 127.0.0.1:1227 -I https://www.google.com

🚀 试试这个“大招”

与其在这些不确定的端口上浪费时间,我们直接让系统告诉你 HeySocks 到底在用哪个端口。

  1. 打开 Windows 设置 -> 网络和 Internet -> 代理

  2. 看看 “手动设置代理” 那里是不是被 VPN 自动打开了?

  3. 如果打开了,直接记下那里的 地址和端口。那才是真正的“官方指定出口”。

看到 Connection timed out 且伴随着之前的 invalid version 报错,我们可以得出一个实锤的结论:10000 端口确实是一个 HTTP 代理监听端口,但由于某种原因(可能是 HeySocks 节点失效,或者它需要身份认证),它无法把流量送出外网。

咱们别在这几个“死端口”上耗时间了。既然你的浏览器能正常上网,说明你电脑里一定有一个“活”的出口,只是没在 10000 端口上。


🛠️ 终极找寻方案:从“系统级”抓取端口

请按以下操作,这是找到正确代理的最快路径:

  1. 直接看 Windows 代理设置

    • 按下 Win + I 打开设置。

    • 进入 网络和 Internet -> 代理

    • “手动设置代理” 下方,看看那个“代理服务器”开关是否是“开”。

    • 如果是开的,请直接把那里的 地址端口 记下来。

  2. 通过 PowerShell 强制读取

    • 在 PowerShell 里输入这行“黑科技”命令:

      (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings").ProxyServer
      
    • 它会直接返回类似 127.0.0.1:XXXX 的结果。这个 XXXX 就是你浏览器上网用的真正端口!


🚀 找到后如何一键启动?

一旦你拿到了那个真正的端口(比如是 78901082),直接运行这串命令:

$env:HTTP_PROXY="http://127.0.0.1:XXXX"; $env:HTTPS_PROXY="http://127.0.0.1:XXXX"; openclaw gateway

💡 为什么我会建议你这么做?

  • 浏览器能用 = 代理在跑:只要浏览器能打开 Google,说明系统里一定有一个进程在处理 127.0.0.1 的请求。通过注册表查询,能绕过 VPN 模糊的 UI 界面,直接拿到它的底层端口。

那个注册表查询命令返回了什么?如果返回为空,说明你的 VPN 可能用了特殊的 TUN 模式或者驱动转发,那样的话,我们得用另一套策略。(事实证明 确实是我的VPN直接启用了系统代理)


总结以后如何启动openclaw gateway (网关)

记得在蓝色图标的powershell里面执行

# 1. 确保代理已注入(每次新开窗口都要执行)
$p=(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings").ProxyServer; $env:HTTPS_PROXY="http://$p"; $env:HTTP_PROXY="http://$p"

# 2. 强制运行修复后的 Gateway
openclaw gateway

解决后的效果

解决以后的openclaw tui 终端输出:

openclaw gateway 网关终端输出

以及gemini lab的 API 监控界面也实时更新了这次的token消耗情况,还能看到之前失败的404的报错记录

openclaw架构详解

详见codewiki链接吧,我用codewiki对这个项目进行了分析,界面如下

https://codewiki.google/github.com/openclaw/openclaw

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐