利用 DNS 分流与 SNI 代理一键解锁 Claude / ChatGPT / Gemini
利用 DNS 分流与 SNI 代理一键解锁 Claude / ChatGPT / Gemini
在部署跨国业务或搭建个人服务时,我们经常会购买香港或特定区域的 VPS(虚拟专用服务器)。然而,在使用这些 VPS 访问主流 AI 服务(如 Claude、ChatGPT、Gemini)时,经常会弹出类似的报错提示:
- Claude / Anthropic:
App unavailable in your region- ChatGPT / OpenAI:
Not available in your country- Gemini / Google AI:
Gemini 目前不支持你所在的地区。敬请期待!
这是因为这些 AI 平台的 CDN(如 Cloudflare 或 Google 基础设施)会严格检测请求的出口 IP。一旦发现 IP 属于不受支持的区域(例如香港节点),就会直接阻断访问。
为了解决这个问题,本文将带你通过“DNS 分流 + SNI 透明代理”的轻量级方案,将 AI 流量精准引导至支持的地区节点(如日本地区)转发,而普通流量依然走本地。无需全局挂载 VPN,既不影响本地网络速度,又能实现全局完美解锁。
💡 解锁原理浅析(看懂这图就懂了)
我们在方案中准备两台机器:
- 入口节点(如:香港 VPS
HK):你平时主要使用的服务器,负责接收你的请求,并运行 AdGuard Home 进行域名识别。 - 解锁节点(如:日本 VPS
Japan):位于 AI 服务支持地区的服务器,负责接收香港转过来的 DNS 与 HTTPS 请求,并代为向 Cloudflare/Google 发起访问。
📌 整体流量走向图
[你的客户端 / 香港 VPS]
│
▼ (1. 识别访问域名)
[AdGuard Home (香港)]
│
├─────────────────────────────────┐
│ (常规域名) │ (AI 专有域名)
▼ ▼
[本地服务商 DNS] [日本 SNI 代理服务器 (端口 443)]
│ │
▼ ▼
[正常公网访问] [Cloudflare / Google 日本 Edge 节点]
│
▼ (2. 识别为日本 IP,顺利通过检测)
[AI 服务解锁成功!]
🛠️ 第一部分:在【解锁端机器(日本 VPS)】部署服务
在支持 AI 服务的机器上,我们需要部署两个极为轻量的 Docker 容器:
- Unbound DNS 容器:提供跨国 DNS 解析服务(监听 5353 端口)。
- Nginx SNI 代理容器:在 TCP 443 层透传 TLS 握手流量,实现无证书解密的高效转发。
⚠️ 注意:请提前在云服务商面板(如 Azure NSG / AWS Security Group / 防火墙)中放行 UDP 5353、TCP 5353 与 TCP 443 端口。
1. 部署 Unbound DNS 服务
在 日本 VPS 终端中,直接复制并运行以下命令:
# 1. 创建配置文件保存目录
mkdir -p /root/unbound
# 2. 写入 Unbound 配置文件
cat <<EOF> /root/unbound/unbound.conf
server:
interface: 0.0.0.0@5353
access-control: 0.0.0.0/0 allow
verbosity: 1
do-ip4: yes
do-udp: yes
do-tcp: yes
forward-zone:
name: "."
forward-addr: 1.1.1.1
forward-addr: 8.8.8.8
EOF
# 3. 采用 Host 网络模式启动 Unbound(彻底规避 Docker Bridge 导致的跨国 UDP 丢包)
docker run -d \
--name japan-dns \
--restart always \
--net=host \
-v /root/unbound/unbound.conf:/opt/unbound/etc/unbound/unbound.conf \
mvance/unbound:latest
2. 部署 Nginx SNI 透明代理
在 日本 VPS 终端中,直接复制并运行以下命令:
# 1. 创建 Nginx 配置文件保存目录
mkdir -p /root/sniproxy
# 2. 写入 Nginx Stream (SNI 盲转发) 配置文件
cat <<'EOF' > /root/sniproxy/nginx.conf
events {
worker_connections 1024;
}
stream {
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;
server {
listen 443;
ssl_preread on;
proxy_pass $ssl_preread_server_name:443;
proxy_connect_timeout 5s;
}
}
EOF
# 3. 启动 Nginx SNI 代理容器
docker run -d \
--name sni-proxy \
--restart always \
--net=host \
-v /root/sniproxy/nginx.conf:/etc/nginx/nginx.conf:ro \
nginx:alpine
🛠️ 第二部分:在【入口端机器(香港 VPS)】配置 AdGuard Home
在香港 VPS 上,我们使用 AdGuard Home 来充当“交通警察”:把 AI 域名的 DNS 请求解析与 HTTPS 流量精准重写指向日本机器,同时保持其他公网与内网域名的正常访问。
1. 设置上游 DNS 服务器 (Upstream DNS)
登录 AdGuard Home 后台 ➔ 设置 (Settings) ➔ DNS 设置 (DNS settings)。
在 上游 DNS 服务器 (Upstream DNS servers) 输入框中,清空原有内容,将以下规则粘贴进去:
💡 提示:请将下文中的
xx.xx.xx.xx替换为你自己的【日本 VPS 公网 IP】;将172.16.36.100替换为你当前 VPS 云厂商自带的内网 DNS。_
[/claude.ai/]xx.xx.xx.xx:5353
[/anthropic.com/]xx.xx.xx.xx:5353
[/openai.com/]xx.xx.xx.xx:5353
[/chatgpt.com/]xx.xx.xx.xx:5353
[/oaistatic.com/]xx.xx.xx.xx:5353
[/oaiusercontent.com/]xx.xx.xx.xx:5353
[/gemini.google.com/]xx.xx.xx.xx:5353
[/bard.google.com/]xx.xx.xx.xx:5353
[/alkalimaker-pa.googleapis.com/]xx.xx.xx.xx:5353
[/generativelanguage.googleapis.com/]xx.xx.xx.xx:5353
[/x.ai/]xx.xx.xx.xx:5353
[/grok.com/]xx.xx.xx.xx:5353
172.16.36.100
172.16.36.101
1.1.1.1
8.8.8.8
粘贴完成后,点击页面下方的 保存 (Save)。
2. 配置 DNS 重定向 (DNS Rewrites)
通过重写 DNS 记录,强行将 AI 域名的 HTTPS 请求(Port 443)引流至日本 Nginx SNI 代理容器。
进入 AdGuard Home 过滤器 (Filters) ➔ DNS 重定向 (DNS Rewrites) 页面,点击 添加 DNS 重写,依次添加以下条目:
| 匹配域名 (Domain) | 应答 IP (Answer IP) | 说明 |
|---|---|---|
claude.ai |
xx.xx.xx.xx |
Claude 官网 |
*.claude.ai |
xx.xx.xx.xx |
Claude 子域名 |
*.anthropic.com |
xx.xx.xx.xx |
Anthropic 接口 |
chatgpt.com |
xx.xx.xx.xx |
ChatGPT 官网 |
*.chatgpt.com |
xx.xx.xx.xx |
ChatGPT 子域名 |
openai.com |
xx.xx.xx.xx |
OpenAI 官网 |
*.openai.com |
xx.xx.xx.xx |
OpenAI 接口 |
gemini.google.com |
xx.xx.xx.xx |
Gemini 官网 |
bard.google.com |
xx.xx.xx.xx |
Google Bard 备用域名 |
*.googleapis.com |
xx.xx.xx.xx |
Google AI 后台接口 |
x.ai |
xx.xx.xx.xx |
xAI 官网 / Grok API |
*.x.ai |
xx.xx.xx.xx |
xAI 子域名 / API |
grok.com |
xx.xx.xx.xx |
Grok 独立 Web 官网 |
*.grok.com |
xx.xx.xx.xx |
Grok 网页版子域名 |
3. 添加自定义过滤规则 (屏蔽 IPv6)
许多云服务器和本地网络默认启用了 IPv6。为了防止流量“偷跑”走 IPv6 直连而绕过 IPv4 代理,我们需要在 AdGuard Home 中将这些 AI 域名的 IPv6 (AAAA) 解析直接禁用,强制降级走 IPv4 代理。
进入 AdGuard Home 过滤器 (Filters) ➔ 自定义过滤规则 (Custom filtering rules),粘贴以下规则并保存:
! 1. Claude 屏蔽 IPv6
||claude.ai^$dnsrewrite=NOERROR;AAAA;
||anthropic.com^$dnsrewrite=NOERROR;AAAA;
! 2. ChatGPT / OpenAI 屏蔽 IPv6
||openai.com^$dnsrewrite=NOERROR;AAAA;
||chatgpt.com^$dnsrewrite=NOERROR;AAAA;
||oaistatic.com^$dnsrewrite=NOERROR;AAAA;
||oaiusercontent.com^$dnsrewrite=NOERROR;AAAA;
! 3. Gemini / Google AI 屏蔽 IPv6
||gemini.google.com^$dnsrewrite=NOERROR;AAAA;
||bard.google.com^$dnsrewrite=NOERROR;AAAA;
||alkalimaker-pa.googleapis.com^$dnsrewrite=NOERROR;AAAA;
||generativelanguage.googleapis.com^$dnsrewrite=NOERROR;AAAA;
! 4. Grok / xAI 屏蔽 IPv6
||x.ai^$dnsrewrite=NOERROR;AAAA;
||grok.com^$dnsrewrite=NOERROR;AAAA;
🧪 最终效果验证
全部配置完毕后,我们可以在 香港 VPS 终端里验证分流与代理是否生效:
1. 验证 Claude 连接
curl -I [https://claude.ai](https://claude.ai)
预期结果:
- 响应头中出现
cf-ray: xxxxxxxx-NRT(其中NRT代表流量已成功从 东京 节点接入 Cloudflare)。 - 响应头中不再出现
location: .../app-unavailable-in-region跳转。
2. 浏览器实际体验
在配置了该 AdGuard Home 作为 DNS 的电脑或浏览器上,打开 https://gemini.google.com 或 https://claude.ai:
- 首次打开时可能会遇到 Cloudflare 的 5 秒盾(人机验证 Challenge),这是正常现象,点击通过即可。
- 验证完成后,即可顺利看到登录与对话界面,阻断提示彻底消失!
3. 流媒体 & AI 服务解锁一键全量检测脚本
如果你想全面检测服务器当前对 ChatGPT / Claude / Gemini / Netflix / Disney+ / YouTube Premium 等各大 AI 与流媒体服务的区域解锁状态,可以在服务器终端直接运行以下开源检测脚本:
# 运行通用流媒体与 AI 解锁检测脚本
bash <(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)
📝 总结
通过这套组合拳:
- 不修改系统路由表:不需要在服务器上配置复杂的 VPN 或 iptables 转发。
- 资源占用极低:日本端仅运行精简版的 Unbound 与 Nginx 镜像,内存占用不到 50MB。
- 精确打击:仅对 Claude、OpenAI、Gemini 等敏感 AI 域名做代理转发,其余所有流量均保持原路线直连,做到了无感、高效的完美解锁。
- 感谢你赐予我前进的力量

