SuperAPI AI 工具集

lov-iproyal-raylink

通用与其它

查看项目

更新于 10-15 08:20

技能介绍

用途

把 IPRoyal 静态住宅(ISP)代理接到 RayLink 订阅上,在 Clash Verge Rev 中形成链式出口,使 AI 网站走固定的 IPRoyal IP,由 RayLink 加密组承载。结果在运行中的内核上可验证,也可移除或回滚。

为什么需要链式接入

IPRoyal ISP 端点只接受明文 HTTP 或 SOCKS5(IPRoyal 仅为住宅产品记录 TLS-to-proxy)。从中国大陆直连时,目标主机会被识别:被屏蔽的站点会被重置,代理端口随后被黑洞约 90 秒,且 IPRoyal 自身会随机拒绝部分来自大陆的连接。经 RayLink 链式接入后,同一端点表现稳定。相关细节与原始证据见 references/why-chain.md。

触发条件

适用:

  • “把 IPRoyal 加入 RayLink”“给 RayLink 配上 IPRoyal 出口”“AI 网站走 IPRoyal 固定 IP”
  • “IPRoyal 单独做配置连不上 / 间歇性失败,但在 RayLink 里能用”
  • "Chain my IPRoyal ISP proxy behind RayLink in Clash Verge."
  • "Use IPRoyal as the exit for ChatGPT/Claude on my RayLink profile."

不适用:

  • 与 IPRoyal 无关的 Clash TUN 应用故障(微信图片、IPv6、DIRECT 列表)——使用 lov-clash-tun-doctor。
  • 购买代理、选择机场,或绕过组织网络策略。
  • 部署或运维 RayLink 服务端(增加 inbound、端口、证书)。
  • 把 IPRoyal 链接到非 RayLink 机场:CLI 支持通过 --carrier 指定任意承载组,但多数机场拒绝中继到 IPRoyal 的 1232x 端口;遇到时应说明该限制,而非承诺可用。

用户档案(跨会话)

每次运行都读取 skill.yaml 中声明的共享 user-profile/v1 作用域。只持久化非机密偏好,例如偏好的承载组、哪些组应以该出口为主,写入 skills.lov-iproyal-raylink.records,通过 scripts/profile_store.py record ... --confirm。切勿把 IPRoyal 凭据持久化到 Profile;凭据保留在用户环境和 Clash Verge 脚本文件中(权限 600)。参见 references/user-profile.md。

技能组构成

参见 references/skill-composition.md。lov-clash-tun-doctor 是可选的后续诊断,不需要同级技能。

工作流(强制)

从已安装的技能上下文解析 SKILL_DIR。所有命令为 python3 "$SKILL_DIR/scripts/iproyal_raylink.py" <command>。

步骤 1:检测(只读)

python3 "$SKILL_DIR/scripts/iproyal_raylink.py" detect

从 JSON 报告:找到的 RayLink 配置(target.uid、是否为当前配置)、script_state(stock / custom / managed)、承载组(TCP 稳定)与暴露组(RayLink 代理、AI 网站代理)是否存在、superseded_seq_definitions、controller。若未找到 RayLink 配置或有多个,询问用户使用哪个 --profile。

步骤 2:收集 IPRoyal 代理但不暴露它

让用户自行把 IPRoyal 面板字符串 host:port:username:password 放入环境变量(或文件),例如在自己的终端执行 export IPROYAL_PROXY='...',或使用 --proxy-file。默认协议为 HTTP(端口 12323);传 --type socks5 使用 12324。切勿回显、记录或重复凭据;CLI 只打印 http://:@host:port。

步骤 3:预览,然后应用

python3 "$SKILL_DIR/scripts/iproyal_raylink.py" apply # 试运行 python3 "$SKILL_DIR/scripts/iproyal_raylink.py" apply --apply --restart

  • stock 脚本:由受管块替换。
  • custom 脚本:除非加 --wrap-existing(把用户的 main 重命名为 lovUserMain 并先运行),CLI 会拒绝。使用前告知用户。
  • managed:就地更新块;重复运行是幂等的。

--select(默认 AI 网站代理)选择哪些组以该出口为主并设为 IPRoyal 出口;其他 --expose 组仅把它列为可选项。仅当用户希望所有代理流量都走 IPRoyal 时才用 --select "RayLink 代理,AI 网站代理"。

--restart(macOS)退出 Clash Verge,将选择持久化到 profiles.yaml,重新启动,并通过 controller 设置选择。不加该参数,或在 Windows/Linux 上,告知用户重启 Clash Verge 并在 AI 网站代理中选择 IPRoyal 出口。

若目标配置未处于激活状态,不会重新加载;告知用户先切换到它。

每次写入都会创建 backups/lov-iproyal-raylink-<timestamp>/ 及清单。

步骤 4:在运行内核上验证

python3 "$SKILL_DIR/scripts/iproyal_raylink.py" verify

成功要求 pass: true:出口组已加载、IPRoyal ISP 的链式延迟测试成功、通过 mixed 端口访问 https://chatgpt.com/cdn-cgi/trace 返回 IPRoyal IP(expected_ip,默认为代理服务器地址;可用 --expect-ip 覆盖)。报告延迟、选择项和 trace IP。若给出 hint,表示链路可用但 AI 组未被选中。

步骤 5:按需移除或回滚

python3 "$SKILL_DIR/scripts/iproyal_raylink.py" remove --apply python3 "$SKILL_DIR/scripts/iproyal_raylink.py" rollback --apply --restart

remove 剥离受管块并逐字节还原被包装的 main;rollback 还原最新备份。两者默认试运行。切勿删除备份。

故障处理

参见 references/why-chain.md § Troubleshooting:链式延迟失败(RayLink 承载在当前网络不可用或被阻断)、trace IP 为机场 IP(AI 组未被选中)、Clash Verge 报脚本错误,以及商家 Wi-Fi 阻断 RayLink 非标准端口。

依赖

除 Python 3.8+ 外无依赖。可选:PyYAML(更宽容地解析 profiles.yaml)、node(写入前做语法检查)。