实战指南:用一台海外 VPS + NPM 搭建 Antigravity 专属反代,彻底告别梯子与封区
/ 6 min read
Table of Contents
实战指南:用一台海外 VPS + NPM 搭建 Antigravity 专属反代,彻底告别梯子与封区
使用 Google Antigravity(包括其背后的 Claude 3.7 / 3.5 Sonnet 与 Gemini 3.8 / 3.7 系列)写代码体验非常优秀,但痛点也很明显:Google 对出口 IP 的地区风控极严。
如果依赖本机商业代理,经常会遇到节点地区不支持、节点频繁更换导致断流、甚至被风控封禁的问题。
其实最省心、也是体验最好的解法:用一台能正常访问 Google 的海外 VPS(如韩国、日本、美西),挂上 Nginx Proxy Manager (NPM) 做反向代理。
搭建完成后,本地电脑在完全不需要挂梯子的情况下直连反代域名,把 Antigravity 当国内原生服务用。
架构逻辑
链路非常简单直观:
- 本地端:免代理直连,零延迟抖动,不吃本机分流与 TUN 规则。
- VPS 端:负责 TLS 终止、SNI 伪装和 Host 改写,以原生海外白名单 IP 向 Google 发起握手。
准备工作
- 一台海外 VPS:能够直连访问 Google 服务的机器(推荐韩国、日本等低延迟机房,已装好 Docker 和 Nginx Proxy Manager)。
- 一个解析正常的域名:在 Cloudflare 或其他 DNS 控制台,将一个子域名(例如
agy.yourdomain.com)A 记录解析到你的海外 VPS IP(注意:如果在 Cloudflare,先关闭小黄云 Proxy 保持灰云直连)。
一、 Nginx Proxy Manager (NPM) 配置
登录 NPM 管理面板,点击 Hosts -> Proxy Hosts -> Add Proxy Host。
1. 详情页(Details)
- Domain Names:输入你的解析域名(如
agy.yourdomain.com) - Scheme:
https - Forward Hostname / IP:
daily-cloudcode-pa.googleapis.com - Forward Port:
443 - Websockets Support:勾选开启
- 其余开关默认即可。
2. 证书页(SSL)
- SSL Certificate:选择申请新的 Let’s Encrypt 证书(或已有泛域名证书)
- Force SSL:勾选开启
- HTTP/2 Support:勾选开启
- HSTS Enabled:勾选开启
3. 高级配置(Advanced)—— 最核心步骤
Google 后端网关(GFE)严格校验 TLS 握手名称与 Host 头部,如果不改写 SNI,上游会直接返回 502 或 404。另外,流式输出(SSE)和思考模型需要关闭缓冲并放宽超时。
在 Advanced 文本框中填入以下配置:
# Docker 容器内部 DNS 解析,关闭 IPv6 避免无路由导致超时resolver 127.0.0.11 ipv6=off valid=300s;
# 匹配 Antigravity 的主要 RPC 路由location ~ ^/v1internal: { set $ag_upstream daily-cloudcode-pa.googleapis.com;
proxy_pass https://$ag_upstream;
# 关键:SNI 握手名称与 Host 头必须改写为 Google 原生域名 proxy_ssl_server_name on; proxy_ssl_name daily-cloudcode-pa.googleapis.com; proxy_set_header Host daily-cloudcode-pa.googleapis.com;
# 完整透传请求头与认证信息 proxy_set_header Authorization $http_authorization; proxy_set_header Content-Type $http_content_type;
proxy_http_version 1.1; proxy_set_header Connection "";
# 彻底关闭代理缓冲,保证流式响应(打字机效果)实时秒出 proxy_buffering off; proxy_request_buffering off; proxy_cache off; chunked_transfer_encoding on;
# 超时时间拉长,防止 Opus Thinking / 长代码生成中途中断 proxy_read_timeout 600s; proxy_send_timeout 600s;}点击 Save 保存。
二、 连通性测试
在本地终端(无需开任何代理软件)直接执行以下命令,测试反代是否生效:
curl -sk -I -X POST https://agy.yourdomain.com/v1internal:fetchAvailableModels预期返回:
HTTP/1.1 401 UnauthorizedContent-Type: application/json; charset=UTF-8WWW-Authenticate: Bearer realm="https://accounts.google.com/"返回体中能看到类似如下 Google 官方未授权报错:
{ "error": { "code": 401, "message": "Request is missing required authentication credential...", "status": "UNAUTHENTICATED" }}只要看到 401 Unauthorized 和 googleapis.com 特征,说明反向代理配置完全正确,请求已经成功打入 Google 官方服务器。
三、 本地开发工具配置与排坑
1. 配置 BaseURL
以常见工具(如 OpenCodex 或其他兼容 Antigravity 的插件)为例,找到配置文件(如 ~/.config/opencodex/config.json),将对应的 baseUrl 修改为你自建的反代地址:
{ "providers": { "google-antigravity": { "adapter": "google", "baseUrl": "https://agy.yourdomain.com", "authMode": "oauth" } }}2. 常见踩坑:Benchmark 虚拟地址警告(198.18.x.x)
如果你的本地电脑偶尔开着某些代理工具(Clash / TUN 模式),客户端可能会拦截并弹窗报错:
baseUrl hostname agy.yourdomain.com resolves to a benchmark address (::ffff:198.18.5.44);set allowPrivateNetwork:true only for intentionally local/self-hosted providers-
原因 :本地代理软件的 Fake-IP 机制分配了保留网段(
198.18.0.0/15),被开发工具当作了私网 SSRF 风险进行拦截。 -
解决 :在配置中显式加上一行
"allowPrivateNetwork": true即可解除保护:
{ "providers": { "google-antigravity": { "adapter": "google", "baseUrl": "https://agy.yourdomain.com", "allowPrivateNetwork": true } }}总结
整个搭建过程不需要复杂部署,纯靠 NPM 的图形化界面和几行 Nginx 规则即可搞定:
- 零代理依赖:本地日常敲代码不再需要常驻梯子;
- 连接极其稳定:避免了节点漂移触发 Google 风控封禁;
- 低延迟无感知:东亚 VPS 直连延迟低,流式响应几乎瞬间吐字。