介绍
Claude Code、Codex 和 ChatGPT 不只访问一个主域名:模型请求、账号登录、静态资源、文件上传以及流式或 WebSocket 长连接可能使用不同的域名。如果只代理 claude.ai 或 chatgpt.com,常见结果就是网页能打开,但登录、上传、流式输出或 CLI 单独报错。
这篇教程根据 Net.Coffee 的 Claude 与 GPT 域名清单整理,并用 Anthropic、OpenAI 官方网络文档和 v2fly 社区域名库交叉核对。下面分别给出 Mihomo/Clash.Meta、sing-box 以及 Claude Code 原生 HTTP 代理的配置方法,目标是让同一产品的核心请求稳定走同一个代理出口,同时避免用过宽的关键词、ASN 或固定 IP 段误伤其他流量。

分流要解决什么问题
AI 服务的网络请求大致分为四类:
| 类型 | Claude 侧示例 | OpenAI 侧示例 | 漏配后的常见表现 |
|---|---|---|---|
| 模型与 API | api.anthropic.com |
api.openai.com |
CLI 请求失败、无法返回模型内容 |
| 登录与账号 | claude.ai、platform.claude.com |
auth.openai.com、chatgpt.com |
登录失败、反复跳转或验证 |
| 静态资源与用户内容 | claudeusercontent.com |
oaistatic.com、oaiusercontent.com |
页面白屏、附件上传或下载失败 |
| 流式与长连接 | Claude API SSE、Chrome bridge WebSocket | ws.chatgpt.com、chatgpt.com WebSocket |
流式输出卡住、连接中途断开 |
分流的重点不是“域名越多越好”,而是做到两点:
- 同一产品的核心域名统一命中同一个代理组;
- 规则放在通用规则和最终
MATCH之前,避免一部分请求被提前分到别的出口。
代理和分流只负责网络路径,不会改变账号权限、订阅状态或服务地区政策。使用前仍应确认出口地区受对应服务支持,并遵守平台条款。
配置前准备
本文用 AI 作为代理组名称。实际使用时,要把所有示例里的 AI 替换成自己配置中真实存在的代理组,例如 节点选择、Proxy 或某个固定节点名。
开始前建议做好三件事:
- 备份当前配置文件;
- 选定一个稳定出口,不要让 AI 代理组频繁自动切换节点;
- 建议使用远程 DNS 或经过代理的 DNS,以减少本地 DNS 泄露、污染和解析结果不一致;域名规则是否命中仍取决于客户端的 DNS、Fake-IP 与嗅探模式。
对于 ChatGPT 和 Codex,WebSocket 使用 TCP 443。企业防火墙、TLS 检查或代理网关除了放行 HTTPS,还必须允许 WebSocket Upgrade;否则普通页面可能正常,流式会话仍会卡住。
Mihomo/Clash.Meta:优先使用 geosite
如果当前 Mihomo/Clash.Meta 配置加载的是较新的 geosite 数据库,最省事的写法只有两条:
rules:
- GEOSITE,anthropic,AI
- GEOSITE,openai,AI
# 其他规则……
- MATCH,节点选择
anthropic 和 openai 标签来自域名分类库,维护者更新域名后,本地更新 geosite 数据即可跟进,不必手动改规则。
注意以下两点:
- 两条规则必须放在
MATCH、GEOIP、GEOSITE,geolocation-!cn等通用规则之前;Mihomo 按从上到下顺序匹配,先命中的规则会直接决定出口; - 如果启动日志提示
anthropic或openai标签不存在,说明当前 geosite 数据库不包含对应分类。不要继续猜标签名,改用下一节的手写规则即可。
Mihomo/Clash.Meta:手写核心与补充规则
不想依赖 geosite 数据,或者客户端只支持普通 Clash 规则时,可以直接使用下面这组配置。下面把截至 2026 年 9 月官方网络清单覆盖的域名与 v2fly 社区补充分开标注:官方部分优先保留,社区部分用于覆盖当前观察到的短域名和 CDN,并不表示每一条都是必需项。
rules:
# Claude / Anthropic:当前官方网络清单覆盖
- DOMAIN-SUFFIX,anthropic.com,AI
- DOMAIN-SUFFIX,claude.ai,AI
- DOMAIN-SUFFIX,claude.com,AI
- DOMAIN-SUFFIX,claudeusercontent.com,AI
# OpenAI / ChatGPT / Codex:当前官方网络清单覆盖
- DOMAIN-SUFFIX,openai.com,AI
- DOMAIN-SUFFIX,chatgpt.com,AI
- DOMAIN-SUFFIX,oaistatic.com,AI
- DOMAIN-SUFFIX,oaiusercontent.com,AI
- DOMAIN-SUFFIX,oaistatsig.com,AI
- DOMAIN,cdn.openaimerge.com,AI
# v2fly 社区补充:短域名、关联域名与当前观察到的 CDN
- DOMAIN-SUFFIX,clau.de,AI
- DOMAIN-SUFFIX,claudemcpclient.com,AI
- DOMAIN-SUFFIX,claudemcpcontent.com,AI
- DOMAIN,servd-anthropic-website.b-cdn.net,AI
- DOMAIN-SUFFIX,chat.com,AI
- DOMAIN-SUFFIX,crixet.com,AI
- DOMAIN-SUFFIX,chatgpt.site,AI
- DOMAIN,openai.com.cdn.cloudflare.net,AI
- DOMAIN,openaiapi-site.azureedge.net,AI
- DOMAIN,openaiassets.blob.core.windows.net,AI
- DOMAIN,openaicom.imgix.net,AI
- DOMAIN,openaicomproductionae4b.blob.core.windows.net,AI
- DOMAIN,openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net,AI
- DOMAIN,production-openaicom-storage.azureedge.net,AI
# 可能提前命中上述域名的通用规则和最终 MATCH 放在其后
- MATCH,节点选择
这里的 DOMAIN-SUFFIX,anthropic.com 已经覆盖 api.anthropic.com、mcp-proxy.anthropic.com 等子域名;DOMAIN-SUFFIX,claude.com 也覆盖 platform.claude.com、code.claude.com。OpenAI 侧同理,openai.com 已覆盖 api.openai.com 和 auth.openai.com,chatgpt.com 已覆盖 ws.chatgpt.com。
因此,不需要把每个已被后缀规则覆盖的子域名重复写一遍。规则越短,后续维护越容易。
登录、遥测和第三方域名怎么处理
OpenAI 官方企业网络清单还列出了 WorkOS、Cloudflare Challenge、Intercom、Stripe、Sentry 和 Datadog 等域名;Claude Code 官方清单也包含插件仓库、更新服务器和可关闭的 Datadog 遥测端点。这些域名并不全是 AI 服务专用,有些会被大量网站共同使用。
建议按功能和客户端日志处理,而不是一股脑用 DOMAIN-KEYWORD 全部代理:
rules:
# OpenAI 登录流程需要时再加
- DOMAIN,cdn.workos.com,AI
- DOMAIN,forwarder.workos.com,AI
- DOMAIN,setup.workos.com,AI
- DOMAIN,images.workoscdn.com,AI
- DOMAIN,workos.imgix.net,AI
- DOMAIN,challenges.cloudflare.com,AI
# v2fly 社区记录的 ChatGPT 高级语音信令域名,使用语音功能时按需添加
- DOMAIN-SUFFIX,chatgpt.livekit.cloud,AI
- DOMAIN-SUFFIX,host.livekit.cloud,AI
- DOMAIN-SUFFIX,turn.livekit.cloud,AI
只有在复现登录或实时连接故障时,确认这些域名被直连或拦截,才需要加入。像 DOMAIN-SUFFIX,stripe.com、DOMAIN-SUFFIX,intercom.io 这类共享服务规则会影响其他网站,不建议作为默认核心配置。OpenAI 当前官方列出的 ChatGPT/Codex WebSocket 端点都在 chatgpt.com 下,已被核心后缀规则覆盖;不要为了随机主机名而直接代理整个 webpubsub.azure.com。
高级语音优先使用 UDP 3478,网络不允许 UDP 时可回退 TCP 443。上面三条 LiveKit 域名来自 v2fly,只覆盖部分信令/主机名路径,不能替代限制型企业防火墙所需的 IP allowlist;企业环境应动态读取 OpenAI 维护的 ChatGPT Voice IP清单,不要把某次下载到的 IP 快照永久写死。
原参考文章列出的 Arkose 域名可作为旧登录流程的排查线索,但 OpenAI 当前官方网络清单重点列的是 Cloudflare Challenge 与 WorkOS。域名会变化,遇到验证循环时应以客户端日志和官方最新清单为准。
sing-box 配置方法
sing-box 可以直接在 route.rules 中按域名后缀和精确域名分流。当前规则格式要求写明 "action": "route";AI 要替换成实际存在的 outbound tag。下面仍拆成两个规则对象:第一个对应官方清单,第二个是社区补充,可按实际日志取舍。
{
"route": {
"rules": [
{
"domain_suffix": [
"anthropic.com",
"claude.ai",
"claude.com",
"claudeusercontent.com",
"openai.com",
"chatgpt.com",
"oaistatic.com",
"oaiusercontent.com",
"oaistatsig.com"
],
"domain": [
"cdn.openaimerge.com"
],
"action": "route",
"outbound": "AI"
},
{
"domain_suffix": [
"clau.de",
"claudemcpclient.com",
"claudemcpcontent.com",
"chat.com",
"crixet.com",
"chatgpt.site"
],
"domain": [
"servd-anthropic-website.b-cdn.net",
"openai.com.cdn.cloudflare.net",
"openaiapi-site.azureedge.net",
"openaiassets.blob.core.windows.net",
"openaicom.imgix.net",
"openaicomproductionae4b.blob.core.windows.net",
"openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net",
"production-openaicom-storage.azureedge.net"
],
"action": "route",
"outbound": "AI"
}
]
}
}
如果原配置已经有 route 或 rules,只合并里面的规则对象,不要再嵌套一层同名字段。完成后先执行 sing-box 自带的配置检查,再重载服务:
sing-box check -c /etc/sing-box/config.json
命令没有报错,再按自己的安装方式重启 sing-box。
Claude Code直接使用HTTP代理
如果只需要解决 Claude Code CLI 的网络连接,不想改全局分流,Claude Code 官方支持标准 HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY 环境变量。
Linux、macOS、WSL、Git Bash:
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
claude
Windows PowerShell:
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:HTTP_PROXY = "http://127.0.0.1:7890"
claude
端口 7890 只是示例,要换成代理客户端实际开放的 HTTP 或 mixed 端口。Claude Code 官方明确说明它不支持 SOCKS 代理,因此不能直接把 socks5://127.0.0.1:7891 填进去;只有 SOCKS 端口时,应在代理客户端开启 HTTP/mixed 监听,或继续使用系统级透明代理。
需要长期生效时,可写入 ~/.claude/settings.json:
{
"env": {
"HTTPS_PROXY": "http://127.0.0.1:7890",
"HTTP_PROXY": "http://127.0.0.1:7890"
}
}
已有 settings.json 时,只把 env 里的两个代理变量合并进去,不要覆盖原有权限、模型或插件配置。Claude 后台 agents(claude agents、--bg、/background)由常驻 supervisor 启动,要可靠继承代理变量,应写在用户级 ~/.claude/settings.json 或 managed settings,而不能只在当前 shell 导出;由应用管理连接的 Claude Desktop 会话也只读取 managed/user settings。NO_PROXY 表示绕过代理,不能把 anthropic.com、claude.ai 等域名放进去。
Claude Code 读取代理变量的优先级是 https_proxy、HTTPS_PROXY、http_proxy、HTTP_PROXY。如果 /status 显示的地址和预期不同,先检查系统里是否残留了优先级更高的小写变量。环境变量在 Claude Code 启动时读取,修改后要退出并重新启动会话。
这个方法只保证 Claude Code 自身使用指定 HTTP 代理;ChatGPT 网页、Codex、浏览器附件下载等仍建议使用前面的系统级域名分流。
配置完成后如何验证
1. 先看代理客户端日志
分别访问或调用下面几个域名:
api.anthropic.com
platform.claude.com
claude.ai
api.openai.com
chatgpt.com
ws.chatgpt.com
在 Mihomo/Clash.Meta 或 sing-box 日志里确认它们都命中同一个 AI 出口。若其中某个域名走了 DIRECT 或另一个代理组,先检查规则顺序和代理组名称。
2. 检查 Claude Code
通过环境变量设置代理时,在 Claude Code 里运行:
/status
查看 Proxy 一项是否显示预期地址。也可以用调试模式启动:
claude --debug
需要注意:如果使用的是 Mihomo TUN、透明代理或路由器分流,Claude Code 本身没有设置 HTTPS_PROXY,/status 不一定显示代理;这时应以代理客户端命中日志为准。
3. 检查网页与Codex
打开以下检测页面:
Claude 与 OpenAI 可以使用不同代理组,但同一产品内部的核心域名应保持同一出口。Codex 用户要重点确认 api.openai.com、chatgpt.com 以及 WebSocket 连接都正常;ChatGPT 用户还应实际测试文件上传和下载。
常见故障对照
| 表现 | 优先检查 |
|---|---|
| ChatGPT 网页能开,Codex 报网络错误 | api.openai.com 是否命中 AI 规则,WebSocket 443 是否被拦截 |
| 对话可用,但上传或下载失败 | oaiusercontent.com 是否被直连或阻断 |
| 页面白屏、按钮或样式缺失 | oaistatic.com、相关 CDN 端点是否命中 |
| Claude Code 登录失败 | claude.ai、claude.com、platform.claude.com 是否同出口 |
| Claude MCP 连接器不可用 | mcp-proxy.anthropic.com 是否命中(已被 anthropic.com 后缀规则覆盖) |
| 配置看着正确但完全不命中 | 规则是否位于 MATCH 和通用规则之前,代理组名称是否写错 |
| ChatGPT/Codex 流式输出中途停住 | WebSocket Upgrade、代理空闲超时、TLS 检查是否干扰长连接 |
| Claude Code 流式输出中途停住 | 代理空闲超时、TLS 检查是否干扰 API 的 SSE 连接 |
| 高级语音无声或频繁中断 | LiveKit 域名及官方 Voice IP 范围是否放行,UDP 3478 是否可用,代理客户端是否开启 UDP |
排查时不要盲目增加宽泛规则。最有效的办法是打开代理客户端日志,复现一次故障,找到被 DIRECT、REJECT 或错误代理组命中的具体 host,再补一条精确规则。
不建议照搬的几类规则
1. 固定 IP 段或 ASN 兜底
AI 服务大量使用 CDN 和云平台,入口 IP 可能变化,也可能与其他业务共享。静态 IP/ASN 规则容易过期或把无关流量一起代理。普通用户优先使用域名规则;只有明确掌握网络边界的企业环境,才需要按官方网络文档维护 IP allowlist。ChatGPT Voice 是例外:限制型防火墙应消费 OpenAI 动态维护的 Voice IP 清单,而不是手写一份不会更新的 IP 快照。
2. DOMAIN-KEYWORD,openai、DOMAIN-KEYWORD,datadog 等宽泛匹配
关键词规则可能命中与目标服务无关的域名。能用 DOMAIN-SUFFIX 或 DOMAIN 精确表达时,就不要用关键词兜底。
3. 把所有 NTP 流量加入 AI 分流
NTP 用于同步 UTC 时间,不负责返回系统时区。系统时区由操作系统配置,不能通过把 NTP 请求改走代理来变成代理出口所在地时区。保持系统时间准确即可,无需把 geosite:category-ntp 当作 Claude 或 ChatGPT 的必需规则。
4. 把“防火墙放行清单”直接等同于“代理分流清单”
官方企业文档会列出安装源、客服、支付、监控等共享域名,目的是避免企业防火墙误拦;代理分流则更强调只让目标业务走指定出口。两者用途不同,不能不加区分地整表复制。
更新规则的建议
- 使用 geosite 时,定期更新 geosite 数据文件;
- 使用手写规则时,先关注 Anthropic 与 OpenAI 官方网络文档,再参考 v2fly 等社区维护列表;
- 每次客户端或网页功能改变后,先看日志再补规则,不要凭域名名称猜测;
- 规则调整后同时测试登录、普通对话、流式输出、文件上传和 CLI,单测“网页能打开”并不完整。
小结
- Mihomo/Clash.Meta 能识别标签时,优先使用
GEOSITE,anthropic,AI和GEOSITE,openai,AI,更新维护最省事; - geosite 标签不可用时,改用本文给出的官方核心与社区补充规则,并把可能抢先命中的通用规则和
MATCH放在其后; - sing-box 用
domain_suffix+domain组合即可完成相同分流; - Claude Code 支持
HTTPS_PROXY/HTTP_PROXY,但不直接支持 SOCKS; - 排查的关键是代理日志:确认同一产品的 API、登录、资源及流式/长连接请求命中同一个出口;
- 不建议用宽泛关键词、固定 ASN/IP 段或 NTP 规则作为默认兜底。
参考资料:
- Net.Coffee:Claude Code域名分流规则
- Net.Coffee:Codex/ChatGPT域名分流规则
- Anthropic官方:Claude Code网络配置
- OpenAI官方:ChatGPT网络建议与域名清单
- v2fly domain-list-community:Anthropic域名表
- v2fly domain-list-community:OpenAI域名表
- Mihomo官方:路由规则格式
- sing-box官方:路由规则格式


