代理是通的,连接页也有 claude.ai、chatgpt.com 的记录,请求返回了状态码,然后页面给你一句「We detect suspicious activity」、「Access denied」,或者突然要求填手机号验证、上一秒还在的登录态没了。这类故障和超时不是一回事:流量已经出去了,是出口 IP 的信誉和稳定性被判了风险。端口、Tun、环境变量在这里全都改不动它。
基础路径怎么配,站内已有专文,本文不重复:网页与 Desktop 见Claude.ai / Desktop,终端见Claude Code 代理配置,ChatGPT 网页与 unsupported_country 见ChatGPT 访问。下面只讲一件事:出口 IP 质量,以及怎么在 Clash Verge 里把它固定下来。
先把「路径不通」和「出口被判风险」分开
两类故障的排查动作完全相反:路径问题要改配置,风控问题要换出口并且停手观察。看三个位置就能分开。
| 你看到的 | 连接页表现 | 属于 | 该做的 |
|---|---|---|---|
| 转圈、connection timeout | 没有该域名的记录 | 路径没通 | 查 Tun / 系统代理 / 端口,不要换节点 |
| unsupported_country_region_territory(403) | 有记录,返回 403 | 出口地区不在支持列表 | 换到受支持地区的节点 |
| Access denied / Error 1020 | 有记录,被站点防火墙拒 | 该出口 IP 被拉黑 | 换同地区的另一个节点 |
| Error 1015 | 有记录,429 类 | 该 IP 触发限速 | 停 10 分钟,不要连续重试 |
| Unusual Activity Detected | 有记录,页面正常返回 | IP 信誉 + 会话异常 | 固定单一出口,清会话重登一次 |
| 登录后被登出、要求手机验证 | 有记录,出口 IP 前后不一致 | 会话跨 IP 跳变 | 关掉 AI 域名上的自动切换 |
OpenAI 帮助中心那篇报错排查里,「suspicious activity」一节给的第一条建议就是关掉把流量导向被标记 IP 的 VPN 或代理。这句话反过来读更有用:它承认这个提示的主因是出口 IP,不是你的账号。
AI 服务在看你出口 IP 的哪几件事
风控不看单次请求,看的是一组关联信号。共享节点会同时踩中好几条:
- IP 段类型。机房 IP 段和住宅宽带段在公开数据库里分得很清。AI 服务对机房段本身不禁止,但会调高审查权重——同样的行为,机房 IP 更容易触发验证。
- 同 IP 的账号密度。一个共享出口后面挂几十个人,其中有人跑批量脚本,这段 IP 的历史记录就带上了自动化行为。你的正常对话被算进同一组关联。
- 出口地区与账号注册地不一致。账号用美国手机号注册、平时在美区节点,某天从新加坡节点登录,这就是一次异地登录。偶发会要求验证,反复跨区会被当成凭证泄露。
- IP 在会话期内跳变。这是最容易被自己配置搞出来的一条。同一个对话窗口,前几条请求从 A 出口发出,后几条从 B 出口,服务端看到的是会话被搬走了。
- 短时间内的密集重试。被拒之后连续换节点重试,每次换都是一个新 IP 带着同一个账号凭证敲门。这个模式和撞库探测长得一样。
把这五条合起来看,结论很直白:一个延迟 180ms、但你一直在用的固定节点,对 AI 服务比一组延迟 60ms 的自动切换节点安全得多。测速数字和 IP 信誉是两个维度,节点测速只能告诉你前者。
url-test 和 fallback 正在帮你制造风控
Clash 系客户端的自动选择组,本职工作就是「哪个快用哪个」。url-test 按 interval 定时测速,延迟差超过 tolerance 就切;fallback 在当前节点探测失败时顺位换下一个。日常上网这很好用。放到 AI 服务上,它带来的是:
- 你正在和 Claude 对话,后台一次定时测速把组切到了另一个国家的节点,下一条消息从新 IP 发出。
- 页面要么弹验证,要么直接把你踢回登录页。
- 你以为是节点不稳,手动再点两个节点——又制造了两次 IP 跳变。
负载均衡组更隐蔽。load-balance 默认策略是 consistent-hashing,按目标地址哈希分配,同一个域名倾向落在同一个节点上,看起来还算稳。但 mihomo 文档说明域名匹配是按顶级域名做的,而一次对话会打到主站域名、静态资源域名、验证域名好几个不同的域,它们可能被分到不同节点。round-robin 则是逐个轮换,等于主动给每个连接换 IP,AI 服务上不要用。
如果你确实想在一小组节点里分摊,mihomo 提供 sticky-sessions:相同来源地址加相同目标地址的请求固定到同一节点,映射缓存约 10 分钟过期。这比哈希策略贴近「会话保持」的语义,但 10 分钟仍然短于一次长对话。要真正稳,还是 select 组手动选定一个节点。
在 Clash Verge 里给 AI 域名锁一个出口
做法是加一个手动组,把 AI 相关域名用规则指进去,并且让这条规则排在订阅自带的大规则前面。入口要看版本。v1.6.x 的 Merge 配置支持 prepend-proxy-groups / prepend-rules 这类追加键;v1.7.x 之后 Merge 改名「扩展配置」,官方文档明确它只做配置项覆写/合并,proxy-groups、rules 这几个列表值写进去是整体覆盖而不是追加,prepend/append 已经移到订阅右键菜单的可视化编辑器里(官方 Extend 文档)。所以当前版本请这样做:右键你在用的订阅 →「编辑代理组」,在 prepend 区新建一个组:
- name: AI-Fixed
type: select
proxies:
- US-A-01
- US-A-02
- JP-B-03
再右键同一个订阅 →「编辑规则」,把下面几行加到 prepend 区(每行一条,不要带 YAML 的 - 前缀,编辑器会自己排在订阅规则之前):
- DOMAIN-SUFFIX,anthropic.com,AI-Fixed
- DOMAIN-SUFFIX,claude.ai,AI-Fixed
- DOMAIN-SUFFIX,claudeusercontent.com,AI-Fixed
- DOMAIN-SUFFIX,openai.com,AI-Fixed
- DOMAIN-SUFFIX,chatgpt.com,AI-Fixed
- DOMAIN-SUFFIX,oaistatic.com,AI-Fixed
- DOMAIN-SUFFIX,oaiusercontent.com,AI-Fixed
- DOMAIN-SUFFIX,challenges.cloudflare.com,AI-Fixed
几个容易漏的点。proxies 里写的必须是你订阅里真实存在的节点名,抄上面的占位名会让组变空白(对照代理组空白)。静态资源域名和验证域名要和主站走同一组,否则页面主体从 A 出口来、验证脚本从 B 出口来,Cloudflare 侧看到的是两个来源。改完保存要重新选一次订阅或重连内核让改动生效,编辑器入口和规则优先级见Merge 自定义规则。如果你更习惯写代码,另一条等价路径是「扩展脚本」,在 main(config) 里把新组拼进 config['proxy-groups']、把规则拼进 config.rules,效果和可视化编辑器一样。
确实需要在两三个同地区节点间分摊时,在同一个「编辑代理组」里再加一个 sticky 组:
- name: AI-Sticky
type: load-balance
strategy: sticky-sessions
url: https://www.gstatic.com/generate_204
interval: 600
lazy: true
proxies:
- US-A-01
- US-A-02
把 interval 放长一些,减少后台探测;lazy: true 让它在没有流量时不主动测速。然后把 AI-Sticky 放进 AI-Fixed 的候选里,日常仍然优先手选单节点,只在那个节点明显不行时才切到 sticky 组。规则匹配顺序和分流写法见规则分流。
从现有订阅里挑出干净节点
不需要买新服务,先在手里的订阅里筛。方法是固定一个节点用满 20 分钟,记录结果,再换下一个——不要一分钟点五个,那样测的是你自己制造的跳变。
换节点前后各记一次出口,方便对照落地国家与 IP:
curl -s https://www.cloudflare.com/cdn-cgi/trace | grep -E "^(ip|loc)="
- 手动选一个节点,在浏览器隐私窗口里打开目标站,完整走一次登录到发一条消息。
- 能过就停在这个节点上正常用 20 分钟,看中途有没有弹验证、有没有掉登录态。
- 过程中弹了 Access denied,记下节点名,标记为不可用,换同地区的另一个。
- 筛出两到三个连续两天都没出问题的,写进 AI-Fixed 的
proxies里,其余不要放进来。 - 优先选和你账号注册地一致的地区。美国号配美区节点,比配一个延迟更低的日本节点省事。
如果整个订阅里没有一个节点能撑过 20 分钟,那是机场出口质量的问题,换配置救不了。判断标准和换源的时机见机场怎么选。人少的小机场、明确标注「原生 IP」或「专线」的线路,通常在这类场景上表现好于大流量的低价共享节点。
已经被提示风控之后,按这个顺序处理
顺序比动作重要。每一步之间留时间,不要叠着做。
- 停手。不再重试、不再换节点。被拒之后的密集重试会把「IP 跳变 + 多次失败认证」这两条信号一起喂给风控。
- 确认提示的类型。照上面的表对号,先排除 403 地区问题和 1020 黑名单——这两类换出口就好,和账号无关。
- 固定一个出口。按上一节筛出来的节点手选一个,确认 AI 域名的规则已经指进 select 组,自动切换在这条链路上是关掉的。
- 清干净会话再进。浏览器清掉该站点的 Cookie 和站点数据,关掉广告拦截和隐私类扩展,用隐私窗口重新登录一次。跨 IP 的旧会话本身就是异常信号,留着它反复重试没有意义。
- 等。IP 级别的限速和临时拒绝通常会自己过期,Cloudflare 的 1015 就是这类。隔几小时到一天再试,比连续敲门有效。
- 仍然不行,走官方入口。Claude 侧:登录后填申诉表;组织因异常活动被暂停时,受限页面上有「Request a review」;使用政策警告可发信到 [email protected]。ChatGPT 侧:帮助中心那篇报错排查里,确认不是自动化工具导致的可以直接联系官方反馈。提交时写清账号邮箱、报错原文、真实用途。
下面这些是纯浪费时间,甚至会加重问题:不停换节点重试(每次都是新 IP 敲同一个账号)、开 Global 模式把所有流量塞进代理(更多域名走上同一个脏 IP)、重装客户端(本地配置和 IP 信誉无关)、把 interval 调到 30 秒想「更快找到能用的节点」(等于让出口每半分钟换一次)。Tun 和系统代理来回切也一样,那是路径层的开关,见Tun 与 AI 工具。
这篇不解决什么
说清边界省得你白试。账号已经因为违反使用政策被停用,配置改不回来——Anthropic 支持中心把「重复违反使用政策」「从不受支持的地区创建账号」「违反服务条款」并列为封禁原因,其中后两条和你现在用什么节点无关,是注册时就定下的事实。申诉能不能过由平台判断,没有任何代理配置能提高通过率。
同样不在本文范围内:用多个账号轮着用规避额度限制、绕过地区限制去注册不受支持地区的账号、用第三方工具伪装官方客户端的请求特征。这些要么明确违反服务条款,要么本身就是触发封禁的行为,出问题也无法申诉。
本文只覆盖一种情况:你是合规的付费或免费用户,因为共享出口 IP 的质量被误判成风险流量。能做的就是把出口固定、选干净的 IP、别让配置自己制造跳变。客户端从下载中心取最新版,改完覆写记得更新一次订阅。