Files
proxy-station/docs/NET-COFFEE-DNS-2026-10-04.md

49 lines
4.0 KiB
Markdown
Raw Permalink 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.

# Net.Coffee Claude 页面 DNS 检测与复测(2026-10-04)
本文保留当日页面脚本和本机实测证据;后续独立 AI Nodes 与当前订阅范围见 [当前生产状态](CURRENT-STATE.md)。页面实现及解析器出口可能变化,后续复测仍需重新核对。
用户要求检查 [Claude 检测页](https://ip.net.coffee/claude/) 的 DNS 检测机制,若使用该站域名,则将它加入 AI 分流并在本机复测。本次仅新增一条生产规则并刷新本机既有托管订阅,未部署应用代码。
## 实际检测机制
检查当日页面引用的 [claude-page.js](https://ip.net.coffee/claude/claude-page.js?v=20260916a),`detectDNSLeak()` 的实现为:
1. 用 `Math.random()` 生成本次测试 token。
2. 依次加载 `https://<token>-1.d.ip.net.coffee/pixel.gif` 与 `https://<token>-2.d.ip.net.coffee/pixel.gif`,通过新主机名触发 DNS 查询。
3. 等待后查询同源 `/api/dns/result/<token>`,读取 `dns_servers` 数组,即该站权威 DNS 观察到的递归解析器 IP。
4. 查询这些解析器的地理信息;若其中有中国解析器,而页面认定的 Claude 出口不在中国,则显示「可能泄露」。此判断不要求 DNS 解析器 IP 等于 Claude 连接出口 IP,也不要求两者来自同一家运营商。
源码前面的注释仍提到 ipleak.net,但实际请求已使用该站自托管的 `d.ip.net.coffee`。检测没有查询 Claude 域名本身;在按域名分流的环境里,探测域名使用普通国内 DNS,不能单凭此结果认定 Claude 域名也使用国内 DNS。若接口未返回解析器,该页面会显示「DNS 加密或未暴露出口」;空结果也不能证明没有泄漏。
## 生产规则
经管理 API 新增启用的自定义规则:
```ini
DOMAIN-SUFFIX,ip.net.coffee,"🤖 AI"
```
后缀匹配同时覆盖页面根域和随机探测子域,精确 `DOMAIN,ip.net.coffee` 无法覆盖后者。新规则放在现有 AI 规则段末尾、广告和普通业务分流之前;既有协议防护、Unbreak、其他规则的相对顺序及唯一启用的末尾 FINAL 保持原状。
Surge 生成器由该规则自动派生:
```ini
ip.net.coffee = server:https://1.1.1.1/dns-query
*.ip.net.coffee = server:https://1.1.1.1/dns-query
```
已有 `encrypted-dns-follow-outbound-mode` 与 `1.1.1.1/32 → AI` 规则使该 DoH 查询随 AI 出口。没有修改全局 DNS、手写 Host、策略组成员或节点。
## 备份与验收
写入前在线备份:`/opt/proxy-station/data/backups/before-add-ai-net-coffee-dns-20261004-111830.db`,已收紧为 root 属主、600 权限。敏感 API 快照、实际订阅和活动配置备份仅保存在权限受限的本机临时目录。
- 重读确认规则从 129 条变为 130 条,仅新增上述规则;原规则字段和相对顺序保持一致,组、节点及设置重读与变更前相同。
- 从实际 HTTPS 入口拉取 Surge 与 Clash 订阅,核对托管 self URL、新规则和两条派生 Host 映射。
- `scripts/check-surge.py --fetch-rulesets` 通过官方 Surge CLI 和 49/49 规则集快照校验,静态域名遮蔽提示为 0;Clash 的 `mihomo -t` 通过。
- 本机原活动配置的托管 URL 与此次生产订阅一致。备份后用 `surge-cli managed-profile update` 更新同一托管配置,并在重载生效后确认有效配置包含新规则及 DNS 映射,原 AI 选择保持不变。
- 本机 `rule explain` 确认根域与探测子域命中 AI;`dns trace` 确认探测子域使用 `https://1.1.1.1/dns-query`。
- 同一个 Chrome 检测页修改前刷新显示中国电信 DNS「可能泄露」;修改后刷新显示美国 Cloudflare DNS「未检测到泄露」,Claude 连接出口保持原美国线路。WebRTC 显示「已禁用或无泄露」。
这是该网站、该浏览器和本机 Surge 的实际 DNS 复测;其他设备、其他客户端及远端代理解析器没有在此次测试中验收。网站测试实现与外部规则集后续可能变化,维护时应重新检查探测主机名。