Files
proxy-station/docs/AI-RULE-REVIEW-2026-10-04.md

87 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🤖 AI 规则审阅与精确补齐(2026-10-04)
本文按阶段保留规则补齐及后续删组、调整优先级的证据,数量与选择链均以各段发生时为准。最新规则、组与客户端产物见 [当前生产状态](CURRENT-STATE.md),不按历史阶段恢复旧配置。
本次按用户提供的 [Claude 清单](https://ip.net.coffee/claude/site.html) 与 [ChatGPT 清单](https://ip.net.coffee/gpt/site.html) 审阅线上规则。用户选择「按 AI 专用域名精确补齐;共享服务只加入已确认的主机」。已有远程规则集继续自动更新,缺项通过管理 API 添加到同一 `🤖 AI` 策略。规则集 API 只读,不能修改第三方托管文件,也不通过直接写库替换它们。
## 原有覆盖
| 原有规则 | 审阅结果 |
|---|---|
| Sukka `non_ip/ai.conf` | 实际下载版本为 2026-10-03、53 条;已有 Anthropic、Claude、clau.de、ChatGPT、chat.com、Sora、oaistatic 等域名。`DOMAIN-KEYWORD,openai` 已覆盖所列 OpenAI/Azure/CDN 中包含 openai 的主机,但缺少 oaiusercontent、oaistatsig、MCP 和语音等域名。 |
| Blackmatrix7 `Bing.list` | 9 条,包含 Bing 搜索与相关服务;精确补齐时保留,随后按用户要求移除,见文末后续调整。不是 Claude/OpenAI 专项规则集。 |
| `DOMAIN-SUFFIX,googleapis.com` | 范围包括非 AI Google APIs;保留原业务行为。Unbreak 中靠前的 Google 更新、翻译等 DIRECT 例外继续优先。 |
| Apple Relay 两条后缀及 `apple-relay` 关键词 | 后缀与关键词重叠;保留现有 Apple Intelligence/Relay 行为。 |
| Dia 后缀与关键词 | 停用 `DOMAIN-KEYWORD,diabrowser.engineering`,保留 `DOMAIN-SUFFIX,diabrowser.engineering`,避免关键词匹配域名之外的同名片段。 |
| 已停用的全局 `PROTOCOL,DOH` | 继续停用;仅从 AI 域名规则生成 Surge DNS 映射。 |
原有 Sukka 集还包含 `api.github.com`、多种其他 AI 服务及历史域名。此次保持原引用,精确原则用于新增规则,不声称整个原有 AI 组已收敛为 Claude/OpenAI 专属。
## 新增的 24 条规则
以下全部指向 `🤖 AI`。22 条域名规则放在现有 `api.amplitude.com` 之后、第一条广告拦截规则集之前;保留更早的协议阻断、业务例外和 Unbreak。2 条 IP 兜底放在原有 AI/Bing 域名规则之后,均使用 `no-resolve`。其他原有规则的相对顺序保持不变,唯一启用的 FINAL 保持末尾。
| 类型 | 匹配值 |
|---|---|
| DOMAIN-SUFFIX | claudemcpclient.com |
| DOMAIN-SUFFIX | claudemcpcontent.com |
| DOMAIN-SUFFIX | claudeusercontent.com |
| DOMAIN-SUFFIX | oaiusercontent.com |
| DOMAIN-SUFFIX | crixet.com |
| DOMAIN-SUFFIX | oaistatsig.com |
| DOMAIN-SUFFIX | chatgpt.livekit.cloud |
| DOMAIN | servd-anthropic-website.b-cdn.net |
| DOMAIN | anthropic.com.cdn.cloudflare.net |
| DOMAIN | anthropic.auth0.com |
| DOMAIN | anthropic-com.ghost.io |
| DOMAIN | browser-intake-us5-datadoghq.com |
| DOMAIN | http-intake.logs.us5.datadoghq.com |
| DOMAIN | client-api.arkoselabs.com |
| DOMAIN | host.livekit.cloud |
| DOMAIN | turn.livekit.cloud |
| DOMAIN | o33249.ingest.sentry.io |
| DOMAIN | o207216.ingest.sentry.io |
| DOMAIN | browser-intake-datadoghq.com |
| DOMAIN | rum.browser-intake-datadoghq.com |
| DOMAIN-SUFFIX | statsig.anthropic.com |
| DOMAIN-KEYWORD | chatgpt-async-webps-prod- |
| IP-CIDR | 160.79.104.0/23 |
| IP-CIDR6 | 2607:6bc0::/48 |
`statsig.anthropic.com` 原本已经被 Anthropic 后缀覆盖,但更早的广告域名集包含它;这条是优先级例外,而非新增域名覆盖。`browser-intake-datadoghq.com` 及其 `rum` 主机也原先被广告域名集拦截,补充后优先交给 AI。用户选择接受这些已确认 AI 遥测主机,不据此放行所有遥测服务。
ChatGPT 动态 Azure 主机的范围参考 [v2fly OpenAI 原始清单](https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/openai)。当前数据模型没有顶层 DOMAIN-WILDCARD;本次使用 ChatGPT 服务专用前缀关键词,避免添加整个 `webpubsub.azure.com` 后缀。关键词匹配不是锚定的完整域名正则,也会匹配其他包含相同字符串的主机;这是一项明确的表达能力限制。它可以在三个现有客户端产物中下发,并触发 Surge 域名 DNS 映射。
## 没有照搬的项目
- 不新增整个 `sentry.io`、`statsigapi.net`、`intercom.io`、`intercomcdn.com` 或泛化 `datadog`/`sentry`/`sift` 关键词;不将通用 `cdn.usefathom.com` 当作 AI 专属。这些会改变其他应用的流量。只添加上表确认的遥测主机;Claude CLI 的两个 Datadog 主机由 [官方网络要求](https://code.claude.com/docs/en/network-config#network-access-requirements) 确认,OpenAI 的两个 Sentry 与 rum 主机由 [官方网络建议](https://help.openai.com/en/articles/9247338-network-recommendations-for-chatgpt-errors-on-web-and-apps) 确认。
- Claude 页面提供的 `/21` 和 IPv6 `/32` 比 API 接收请求的网段宽。[Anthropic 官方 IP 文档](https://platform.claude.com/docs/en/api/ip-addresses) 将 inbound 标为 `160.79.104.0/23`、`2607:6bc0::/48`,而 `/21` 是服务端向外发起工具请求的出口范围。本次使用 inbound 范围,不加扩大覆盖的 ASN 兜底。
- 不添加全局 NTP 分流。页面称 NTP 返回代理所在地时区,这不符合 [RFC 5905](https://www.rfc-editor.org/rfc/rfc5905.html) 的 UTC 时间模型;转发 NTP 也不会修改设备时区。
- IPv6 `/48` 是路由兜底,不启用客户端或边缘 IPv6。边缘继续遵守 IPv4-only,命中规则不保证 IPv6 字面目标可以连接。
## 验证与限制
变更前、候选配置与写入后的实际 HTTPS Surge 订阅均通过官方 Surge CLI;每次 60/60 远程规则集快照下载成功并再次通过 CLI,静态域名遮蔽提示为 0。写入前在线备份,新增规则先以停用状态创建、提交全量顺序后逐条启用,再停用 Dia 关键词,逐条核对 HTTP 状态。
线上已重读确认规则从 116 增至 140,其中启用 138 条、启用的 AI 规则 31 条;其他原有规则字段与相对顺序、节点、组、设置及规则集引用均未改变。实际 HTTPS 的 Surge、Clash、Shadowrocket conf 均包含全部 24 条新增规则,节点与组产物与变更前一致,FINAL/MATCH 末尾兜底验证通过;Surge 的 self URL 和新增域名 DNS 映射正确。38 个 AI 域名样例的首条域名匹配均为 AI,3 个 Google Unbreak DIRECT 例外仍保留。Clash 实际订阅另通过独立临时目录的 `mihomo -t`;Shadowrocket 为结构验证,未做真机编译。文档变更通过 `git diff --check`。
备份:`/opt/proxy-station/data/backups/before-ai-claude-chatgpt-precision-20261004-102138.db`,已收紧为 root 属主、600 权限。含凭据的 API 快照及订阅仅保存在权限受控的私有临时目录,不写入仓库。本次只有生产数据与文档变更,没有代码部署。
本次候选校验还发现:`AND,((DOMAIN-SUFFIX,webpubsub.azure.com),(DOMAIN-KEYWORD,chatgpt-async-webps-prod-)),"🤖 AI"` 被本机 Surge CLI 拒绝,同一规则将末尾策略裸写为 `🤖 AI` 则通过。当前生成器为含空格的策略输出引号,因此本次没有写入这条 AND。以后修改逻辑规则生成器时,应单独补原生 CLI 用例并核实带空格策略的处理;本次不部署代码。
DNS 映射随新域名规则生成,手写 Host 例外继续优先;IP 规则不生成域名 DNS 映射。现有全局 STUN 阻断可能影响语音 WebRTC/TURN,添加语音域名不表示高级语音已经可用。CLI 和静态覆盖验证不能替代设备上的登录、附件、MCP、语音与 DNS/WebRTC 验收。策略组成员和设备已保存的出口选择均保持现状。
## 后续调整:移除 Apple/Global Services 与 Bing 专用分流
2026-10-04 按用户要求,经管理 API 删除 `🍎 Apple`、`🌐 Global Services` 两个组,以及指向它们的 9 条规则(apple_cdn、AppleTV、Apple、Twitter、Telegram 域名/IP/ASN、OneDrive、microsoft);另删除 `🤖 AI` 的 Bing RULE-SET。没有将这些专用规则改挂其他策略,后续规则自然接管。用户明确选择保留 `global`/`global_plus` 的 Automatic 策略;当前规则集静态域名匹配确认 x.com、twitter.com、bing.com、www.bing.com 均由 `global` → Automatic。当前 Sukka AI 集不含 Bing/Copilot 名称规则。App Store DIRECT、Apple News 美国、Apple Relay AI 例外继续保留。
重读确认组从 14 减至 12、规则从 140 减至 130,组成员剩 25;其余组、规则字段与相对顺序、节点和设置均保持原状,唯一启用 FINAL 仍在末尾。实际 HTTPS Surge、Clash、Shadowrocket conf 均已无这两个组和 Bing 规则引用;Surge self URL 正确,官方 CLI 与 50/50 远程规则集快照校验通过,静态域名遮蔽提示为 0;Clash 的 `mihomo -t` 通过。Shadowrocket 仅验证产物结构,未进行真机编译或业务连接验证。
本次写入前在线备份为 `/opt/proxy-station/data/backups/before-remove-apple-global-bing-20261004-103623.db`。只调整生产数据与相关文档,未部署代码或修改初始化模板。
同日后续按用户明确要求统一代理入口:原先指向 Automatic 的 20 条规则(包括 global/global_plus)全部改为 Proxy,Automatic 从 select 改为 url-test;AI/Speedtest/NoAuto 去掉 Automatic 成员。因此 x.com/bing.com 的已验证路径变为 global → Proxy;当时 AI 的可选成员为美国、新加坡、日本、All Nodes。该调整覆盖上文“保留 Automatic”的阶段性状态,详见 [Proxy 与 Automatic 选择链](PROXY-AUTOMATIC-2026-10-04.md)。
同日再按用户要求删除 Speedtest 组与其一条专用规则,并调整组显示顺序。当时 30 条启用 AI 规则集中排在广告与普通分流之前;用户明确选择保留 STUN 阻断及 Google 更新/翻译直连例外,因此两条协议防护及 Unbreak 在 AI 之前。实际 HTTPS Surge/Shadowrocket 的 126 个 AI 域名样例均首条匹配 AI,Google 例外仍为 DIRECT,49/49 规则集快照与 Surge CLI、Clash 原生校验通过。该阶段为 11 组、129 条规则、21 个成员,详见 [AI 与广告优先级](AI-PRIORITY-2026-10-04.md)。
随后新增 `DOMAIN-SUFFIX,ip.net.coffee → AI`,本机 DNS 探测从中国电信变为美国 Cloudflare;再将 AI 中的 All Nodes 替换为独立 `🧠 AI Nodes`,紧接 AI 显示,两个全节点组按完整名称排列且各自保存选择。最新为 12 组、130 条规则、31 条启用 AI 规则,见 [DNS 复测](NET-COFFEE-DNS-2026-10-04.md)与 [AI Nodes](AI-NODES-2026-10-04.md)。