htop 里 CoreDNS 常年高居榜首——那是一个很久以前下载的 amd64 二进制,Rosetta 在幕后翻译了不知多少个月,CPU 不知疲倦地降频发热。
Loon 劫持系统 DNS 后,无论原始域名是否有 AAAA,都同时合成假 A(198.0.8.x)和假 AAAA(fd27:712::/32),IPv4/IPv6 双栈流量全部导入 TUN。
Chrome 的 DoH 不走系统 DNS,直接访问 CoreDNS :5353,拿到真实 AAAA,FakeIP 机制彻底失效。
原生编译,告别 Rosetta,CPU 使用率从持续高负载降到接近零。
CoreDNS rewrite,屏蔽 IPv6 返回,强制 FakeIP 通路。
Go 插件,Hash Set O(1),国内/国外域名自动分流到不同上游。
DNS-over-TLS 1.3,海外查询全程加密,防 ISP 监听。
CoreDNS 必须成为 Loon 的唯一内部 DNS,让 FakeIP 劫持发生在 DNS 返回到 App 之前。
Chrome 和 Safari 打开同一个页面,都走 FakeIP 隧道,GeoDNS 落点正确,aliyun.com 不再跳国际站。
Loon 在上、CoreDNS 在中、三条上游在下——所有 DNS 路径在这一层汇聚、分叉。
Safari、Chrome DoH、所有 App → 系统 DNS → Loon FakeIP 劫持 → CoreDNS
CoreDNS 作为唯一 DNS 入口:rewrite AAAA → A,splitdns Hash Set 分流决策,cache prefetch 预热
国内域名 → AliDNS 直连;国外域名 → Cloudflare DoT 1.1.1.1:853;*.ts.net → Tailscale MagicDNS
修好 CoreDNS 之后,aliyun.com 突然不跳国际站了。这件事本来一笑而过,但「为什么」让我停下来——Loon 日志显示 DIRECT,凭什么同一出口 IP 给出两个截然不同的 CDN 响应?
一旦有程序绕过系统 DNS(如 Chrome DoH),FakeIP 机制就会失效,流量逃逸到真实 IPv6 地址上。
DNS 查询从新加坡代理出口发出,GeoDNS 就认为"客户端在新加坡",CDN 节点选择据此改变。
Loon 的路由决策基于 IP,DNS 解析和流量路由是两条平行的链路,必须同时控制才能行为一致。
GoReleaser 一键编译 arm64 + amd64,自动发布 GitHub Release,Homebrew Tap 一行安装。
FakeIP、GeoDNS、代理路由——各自成立,叠在一起就会互相打架。找到假设,才能找到根因。
dig、Playwright、Wireshark——症状散落各处,但每一个症状都有工具可以定位根因,没有例外。
从 Rosetta 陷阱到 Homebrew Tap 分发——每一步都是对工具链的尊重,也是对自己工作环境的投入。