
























这篇文章说一下如何使用固定IP 搭配 Clash Verge 的覆写功能来实现:不切换配置文件,日常上网用机场节点,AI 相关域名稳定分流到 IPRoyal ISP。
用 Shadowrocket 的可以看看最新文章《如何为 Shadowrocket 使用 IPRoyal 代理》
该方法不支持 Claude的桌面端,使用桌面端还是会偶尔跳到机场的节点。所以如果要使用桌面端,那就直接把静态节点作为本地配置文件导入到 Clash。
前天我的 Claude Code 突然就报403错误:
Please run /login · API Error: 403
<!DOCTYPE html><html lang="en-US">
<head><title>Just a moment...</title>
一开始看到 Please run /login,很容易以为是登录态过期。但我在 WSL 里跑了一下:
curl -I https://api.anthropic.com/v1/messages
结果返回的是:
HTTP/2 403
cf-mitigated: challenge
server: cloudflare
这就很明显了。不是 /login 的问题,是当前出口 IP 被 Cloudflare 给挡住了。因为 Claude Code 不是浏览器,它跑不了那个 “Just a moment...” 的 JS challenge,所以最后就是 403。
平常这时,我就去换个机场。但朋友给我分享过来一篇 X 上的文章,我看完之后发现里面有很多地方冲突。例如:一下说住宅IP,一下说静态IP,然后截图里又是静态IP,但是到了 Clash verge 的配置文件里写的又是住宅IP。而且就算是配置好了,那个配置只能是拿来用 AI,同时间干其他事情就不行了。
所以我就想着折腾一下,也是为了能稳定用 Claude Code。
我用的是 Clash Verge Rev 的覆写功能:全局扩展脚本。简单说,你可以写一段自己的配置规则合并到机场订阅的前面去。好处是不用去手动改机场订阅,毕竟如果有多个订阅,改起来太麻烦,而且只要机场订阅一更新,你手动改的东西就没了。
解决思路:
这样平常该怎么用机场还是怎么用机场。只有命中规则的 AI 流量,才会走 ISP。
很多网站都有 ISP(静态住宅IP),我是在 IPRoayl 买的,因为我总在看到它的广告。而且价格确实也还便宜。美国不选地区的话,大概 4 美金一个。如果要指定地区,大概 5.2 美金一个。
大概流程是这样:

拿到的信息包括:主机、端口、用户名和密码。
IPRoyal 会给 HTTP 和 SOCKS5 两种端口。
function main(config) {
config.proxies = config.proxies || [];
config["proxy-groups"] = config["proxy-groups"] || [];
config.rules = config.rules || [];
config.proxies.unshift(
{
name: "IPRoyal-ISP-SOCKS5",
type: "socks5",
server: "代理IP",
port: 12324,
username: "用户名",
password: "密码"
},
{
name: "IPRoyal-ISP-HTTP",
type: "http",
server: "代理IP",
port: 12323,
username: "用户名",
password: "密码",
tls: false
}
);
// ==================== 代理组定义 ====================
config["proxy-groups"].unshift(
{
// AI 服务组:只允许 IPRoyal 出口
name: "AI-Services",
type: "select",
proxies: [
"IPRoyal-ISP-SOCKS5",
"IPRoyal-ISP-HTTP"
]
}
);
// ==================== 分流规则 ====================
config.rules.unshift(
// ---------- AI 服务 → AI-Services----------
"DOMAIN-SUFFIX,openai.com,AI-Services",
"DOMAIN-SUFFIX,chatgpt.com,AI-Services",
"DOMAIN-SUFFIX,oaistatic.com,AI-Services",
"DOMAIN-SUFFIX,oaiusercontent.com,AI-Services",
"DOMAIN-SUFFIX,anthropic.com,AI-Services",
"DOMAIN-SUFFIX,claude.ai,AI-Services",
"DOMAIN-SUFFIX,claude.com,AI-Services",
"DOMAIN-SUFFIX,claudeusercontent.com,AI-Services",
"DOMAIN-KEYWORD,anthropic,AI-Services",
"DOMAIN-KEYWORD,claude,AI-Services",
"DOMAIN-KEYWORD,gemini,AI-Services"
);
return config;
}

点击“代理”,找到 AI-Services 分组,然后点击一下 IPRoyal-ISP-SOCKS5 , 就完成激活了。

如果你只用浏览器访问 AI 网站的话,系统代理就行了。但如果你是用客户端,例如 Claude Code,Antigravity,Codex,那就要打开 TUN 模式了。模式的话,选规则或者全局随便。
可以在 Verge 高级设置里查看当前设置,看看里面有没有 IPRoyal的节点信息。也可以直接通过打开gemini 或者 claude 的页面,然后在连接里看看是不是通过这个分组访问的。

实际使用中,建议关掉浏览器的 QUIC,不然可能还是会漏到机场的IP去。尤其是使用 Claude 的 桌面客户端,这个我尝试了,没能解决。用Antigravity,Claude code,codex 没这个问题。
Chrome / Edge:
chrome://flagsQUICExperimental QUIC protocolDisabledFirefox:
about:confignetwork.http.http3.enablefalse先检查脚本有没有启用。
再检查有没有重新应用配置。有时候你只是保存了脚本,但当前 profile 没重新加载,它不会马上生效。
还有一个可能是 JS 写错了,比如少了逗号、括号没闭合。Clash Verge Rev 一般会报错。
这种就把代码复制出来,先检查一下。
实在不行就问问 AI 吧。
链式代理(机场 → IPRoyal)听起来像是"双保险",但实际上:
速度肯定更慢,不会更快。链式的总延迟 = 你 → 机场节点 → IPRoyal → Anthropic,多一跳就多一段延迟和带宽瓶颈。机场节点本身往往是瓶颈(共享带宽、QoS 限速),叠加之后只会更卡。
没有意义。你买 IPRoyal 的目的就是拿到一个干净的 ISP 出口 IP 让 Cloudflare 放行。最终命中 Anthropic 的 IP 是 IPRoyal 的,机场那一跳除了消耗你的机场流量、增加延迟之外,没提供任何额外价值。
唯一可能需要链式的场景:你所在的网络环境直连不到 IPRoyal 的入口服务器(比如国内运营商对 IPRoyal 的 endpoint 做了封锁或 QoS)。这种情况下才需要先用机场翻出去,再连 IPRoyal。但 IPRoyal 的入口在国内一般是能直连的,至少能 TCP 连通,先测一下再说。如果是做链式代理的话,就要把 IPRoyal 直接作为节点添加到机场的配置中。
我是觉得 AI 服务其实对IP挺宽容的,我自己测试机场,IP经常是乱飞的,Gemini,Chatgpt,甚至最近开通的 Claude Code 都没有封我。但是一个固定的IP 可以稳定的使用 AI 服务,还是让人舒心的。实际使用中,我觉得 Gemini 没必要用 ISP,随便用机场 IP 都行,但是 Antigravity 用了 ISP 之后就稳定多了, Claude Code也不会报403错误了。
另外,我认为使用eSIM卡加热点可能还是更稳一点吧。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。