🚀 专为 Antigravity 编辑器打造:在中国也能无需 TUN 模式稳定走代理
🇬🇧 English Version | 🇷🇺 Русская версия
先说结论:如果 Antigravity 的对话框里出现
Agent execution terminated due to error,请先排查代理出口 IP,不要先怀疑 DLL 没生效。
我们已经在真实现场里确认过,最容易误判的场景是:
- version.dll 已加载
- language_server_windows_x64.exe 已注入
- node.exe 也已注入
- oauth2.googleapis.com / daily-cloudcode-pa.googleapis.com 仍然可以通过 SOCKS5 正常连通
- 但 Antigravity 自己的 ls-main.log 仍然返回:
- FAILED_PRECONDITION (code 400): User location is not supported for the API use.
这类问题的主因通常不是 DLL 失效,而是: - 当前代理出口 IP 的国家/ASN/机房属性,被 Antigravity agent mode / Gemini CLI 路径判定为不可用 - 也就是说:“国家支持”不等于“当前这条 agent 执行链路一定接受这条出口 IP”
<Antigravity安装目录>\\logs\\proxy-YYYYMMDD.log如果你在这份日志里看到类似下面这些关键行,说明 DLL 本身已经在工作:
- [成功] 已注入目标进程: language_server_windows_x64.exe
- [成功] 已注入目标进程: node.exe
- SOCKS5: 隧道建立成功, 目标=oauth2.googleapis.com:443
- SOCKS5: 隧道建立成功, 目标=daily-cloudcode-pa.googleapis.com:443
在配置页开启 diagnostics.agent_ip_probe 后,DLL 会额外输出 IP 诊断日志:
- [诊断/IP] 当前代理出口探测完成: ...
- [诊断/IP] 当前代理出口呈现机房/托管特征...
- [诊断/IP] 最新 Antigravity 日志已命中 location 限制错误,同时当前代理出口呈现机房/托管特征...
%APPDATA%\\Antigravity\\logs\\<最新时间目录>\\ls-main.log如果你在这里看到:
- agent executor error: FAILED_PRECONDITION (code 400): User location is not supported for the API use.
那就说明: - 当前失败点已经不是 DLL 注入或基本代理链路 - 而是 Antigravity 自己的 agent execution 路径被服务端按 location / egress 策略拦住了
proxy-YYYYMMDD.log
- 如果注入和 SOCKS5 都成功,说明 DLL 大概率没问题。%APPDATA%\\Antigravity\\logs\\<最新目录>\\ls-main.log
- 如果有 User location is not supported for the API use.,优先排 IP。Antigravity 对话报错时,先排出口 IP,再排 DLL。看到
location is not supported基本优先看 IP。
Antigravity-Proxy 是专门为 Antigravity 编辑器量身定制的 Windows 代理注入组件(DLL)。
它的目标很简单:让中国用户使用 Antigravity 时,不用开 Clash TUN 模式,也能把网络流量稳定交给你的 SOCKS5/HTTP 代理。
项目名 Antigravity-Proxy = Antigravity + Proxy:只把 Antigravity 相关进程的流量“拽”进代理里(别担心,不会全局接管)。
你是否遇到过这些情况?
Antigravity-Proxy 就是来专治这个的。 它可以:
| 传统方案 | Antigravity-Proxy |
|---|---|
| 需要 TUN 模式 | 无需 TUN |
| 全局代理 | 精准代理指定进程 |
| 需要管理员权限 | 普通用户即可 |
| 配置复杂 | 放入 DLL 即用 |
在使用本工具前,请确保系统已安装必要的运行库,否则可能无法正常启动目标程序。
如果启动程序时遇到 错误代码 0xc0000142(如下图所示),通常是由于系统缺少 Windows 运行库导致的。
请安装 微软常用运行库合集,该工具已包含在本仓库中:
📦 下载路径: microsoft\微软常用运行库合集-2025.exe
安装步骤:
1. 进入本仓库的 microsoft 目录
2. 运行 微软常用运行库合集-2025.exe
3. 按照安装向导完成安装
4. 重新启动目标程序
只想让 Antigravity 立刻能用?看这一节就够了。
启动你的代理软件(例如 Clash/Mihomo),确保本机有可用的 SOCKS5 或 HTTP 代理端口(如 127.0.0.1:7890)。
# 测试 SOCKS5 端口 (默认 7891)
Test-NetConnection -ComputerName 127.0.0.1 -Port 7891
# 测试 HTTP 端口 (默认 7890)
Test-NetConnection -ComputerName 127.0.0.1 -Port 7890
**方法 3:curl 测试(需安装 curl)**
# 通过 SOCKS5 代理访问
curl -x socks5://127.0.0.1:7891 https://www.google.com -I
# 通过 HTTP 代理访问
curl -x http://127.0.0.1:7890 https://www.google.com -I
#### 常见端口问题及解决
| 问题 | 原因 | 解决方案 |
|------|------|----------|
| 端口被占用 | 其他程序使用了该端口 | `netstat -ano | findstr :7890` 查找占用进程 |
| 连接被拒绝 | 代理软件未启动或端口错误 | 确认代理软件已启动,检查端口配置 |
| 代理无响应 | 防火墙阻止 | 检查 Windows 防火墙设置 |
Release 按架构和运行目标提供四个独立压缩包,下载时只选实际使用的一套:
- antigravity-proxy-vX-ide-win-x64.zip / ...-x86.zip:包含 ide/(version.dll、config.json)。
- antigravity-proxy-vX-cli-win-x64.zip / ...-x86.zip:包含 cli/(dbghelp.dll、antigravity_proxy.dll、config.json)。
每个压缩包还包含通用的 config-web.html 与 使用说明.md;自行编译时仍会在本地 output/ide、output/cli 生成两套目录。
桌面端只复制 ide/ 内的文件到 Antigravity 主程序目录(与 Antigravity.exe 同级)。
如果使用 Antigravity CLI,只复制 cli/ 内的文件到 agy.exe 同级目录。dbghelp.dll 会在导出函数首次调用时加载唯一名称的 antigravity_proxy.dll,避开系统 version.dll 同名冲突。
ide/与cli/不要混合复制;桌面端不需要dbghelp.dll。
version.dll与config.json必须来自同一次构建且架构一致。当前版本默认对宿主进程启用全量网络 Hook;启动日志应出现使用全量模式,随后再以 OAuth 回调和业务请求日志做功能验收。
Antigravity 2.0 新增/改名了关键进程,默认配置已覆盖:
"target_processes": [
"agy.exe",
"language_server.exe",
"language_server_windows",
"Antigravity.exe",
"Antigravity IDE.exe",
"node.exe"
]
如果你是从旧版本手动迁移 config.json,请确认 child_injection 仍为 true,并把上面的目标进程列表同步进去。2.0 环境如果存在多个启动目录,也要把 version.dll 和 config.json 放到实际启动的 Antigravity/IDE 目录中。
Antigravity 更新后可能清理安装目录里的劫持文件;如果更新后不走代理,请重新复制这些文件。若代理软件区分 mixed-port 和 SOCKS5 端口,也要确认 proxy.type 和 proxy.port 匹配本机实际监听端口。
更多现场记录见 docs/antigravity-2.0-issue-85.md。
一般情况下 Antigravity 会装在:
例如:C:\Users\<用户名>\AppData\Local\Programs\Antigravity
如果你找不到这个目录:在桌面/开始菜单找到 Antigravity 图标,右键 → 打开文件所在的位置,跳出来的那个目录就是它的主程序目录。
想从命令行一键跳过去(少点鼠标,多点快乐):
cd "$env:LOCALAPPDATA\Programs\Antigravity"
cd /d "%LOCALAPPDATA%\Programs\Antigravity"
(可选)你也可以自己设个环境变量,之后就能 cd 秒过去:
setx ANTIGRAVITY_HOME "%LOCALAPPDATA%\Programs\Antigravity"
设置完后:PowerShell 用 cd $env:ANTIGRAVITY_HOME,CMD 用 cd /d %ANTIGRAVITY_HOME%。
代理不工作?按照本手册逐步排查,找到问题根源。
代理不工作?
│
├── 检查日志是否存在 ───────────────────────────────────┐
│ │ │
│ ├── ❌ 无日志 → DLL未加载/位置错误 │
│ │ └── 见「DLL 加载问题」 │
│ │ │
│ └── ✅ 有日志 → 继续检查日志内容 │
│ │ │
├── 日志中有 "SOCKS5: 隧道建立成功" 吗? ────────────────┤
│ │ │
│ ├── ❌ 没有 → 代理连接失败 │
│ │ └── 见「代理软件排查」 │
│ │ │
│ └── ✅ 有 → 隧道建立成功,问题在后续 │
│ │ │
└── 检查 Clash 日志和节点可用性 ──────────────────────────┘
日志是排查问题的第一手资料。
日志位置(按优先级):
1. <Antigravity安装目录>\logs\proxy-YYYYMMDD.log
2. %TEMP%\antigravity-proxy-logs\proxy-YYYYMMDD.log
快速打开:
# 打开 DLL 目录的 logs 文件夹
cd "$env:LOCALAPPDATA\Programs\Antigravity\logs"
# 或打开 TEMP 目录
cd "$env:TEMP\antigravity-proxy-logs"
日志关键行解读:
| 日志内容 | 含义 | 状态 |
|---|---|---|
Antigravity-Proxy DLL 已加载 |
DLL 成功注入 | ✅ 正常 |
配置加载成功 |
config.json 读取成功 | ✅ 正常 |
所有 API Hook 安装成功 |
Hook 生效 | ✅ 正常 |
ConnectEx Hook 已安装 |
异步连接 Hook 成功 | ✅ 正常 |
SOCKS5: 隧道建立成功 |
代理连接成功 | ✅ 正常 |
非 SOCK_STREAM socket 直连, soType=2 |
UDP 有效策略为 direct,或该端口未命中代理规则 | ⚠️ 视配置而定 |
SOCKS5 握手失败 |
代理握手失败 | ❌ 需排查 |
连接代理服务器失败 |
无法连接到代理 | ❌ 需排查 |
WSA错误码=10061 |
连接被拒绝(代理未启动) | ❌ 需排查 |
WSA错误码=10060 |
连接超时 | ❌ 需排查 |
# 测试 SOCKS5/混合端口
Test-NetConnection -ComputerName 127.0.0.1 -Port 7890
# 如果 TcpTestSucceeded: False,说明端口未监听
在 Clash 配置文件中检查:
# 必须开启混合端口或 SOCKS5 端口
mixed-port: 7890 # 混合端口(推荐)
# 或
port: 7890 # HTTP 端口
socks-port: 7891 # SOCKS5 端口
# 如果需要局域网访问
allow-lan: true
在 Clash 界面查看「日志」或「Logs」,确认:
- 是否有来自 daily-cloudcode-pa.googleapis.com、www.googleapis.com 的请求
- 请求是 DIRECT
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|