用Tailscale自建私人DNS:甩掉广告,数据自己管

用Tailscale自建私人DNS:甩掉广告,数据自己管

五月 11, 2026 tailscale dns headscale self-hosted blocky ad-blocking network security wireguard privacy

自建DNS:全网屏蔽广告,从网络层面搞定

你已经在用Headscale跑自建Tailscale网络了?设备间加密连通已经搞定。但很多人忽略了关键一招:在DNS层直接封杀广告和追踪。不管手机、笔记本还是平板,全网自动生效,一劳永久。

老办法是把DNS指给Cloudflare或Quad9这种公共服务。用着是行,但你错过了大把好处。

为什么自建DNS这么香

Headscale统一管tailnet的DNS解析,神奇的事就发生了:每个设备自动拿到过滤后的DNS结果。不用装App,不用设备单独配blocklist,更不用管一堆方案。

实际用起来超爽:

  • 广告全网蒸发。那些跨站追踪你的广告网络?压根儿进不了你的设备。
  • 内网主机名秒解析。家里的homeserver.tailnet.local,到处都直接认。
  • 安全规则统一。你说了算,什么解析什么不解析,没例外。

Blocky,为什么自建党首选它

Pi-hole和AdGuard Home你肯定听过,牛逼是牛逼。但带web面板、数据库、配置一大堆,头大。

Blocky不一样。它就是个纯DNS代理,专为爱折腾的人设计。只干一件事:挡坏DNS请求。配置就一个YAML文件,到处跑,轻巧。

没花里胡哨UI?对自建党来说,这是优点!我们本就爱命令行。

Blocky牛在哪儿:

  • 配置傻瓜式。不用搭数据库,不用养web面板,不用更新仪表盘。
  • 原生支持blocklist。社区列表直接喂,也能自己搞自定义。
  • 超轻量。Raspberry Pi、小VPS、Headscale主机,随便跑。
  • 上游加密稳。支持DNS-over-TLS,直连你爱的公共resolver。

Android Private DNS的坑

常见场景:Android用内置Private DNS指AdGuard的DoT,挺好使。加了Tailscale,DNS突然崩。

怎么回事:Tailscale通过Headscale推自定义DNS到手机。Android听话,用Tailscale内网resolver(100.100.100.100)。但这玩意儿不加密,Android的Private DNS探测失败,全挂。

解决:让Tailscale全权管DNS。关掉Android的Private DNS,在tailnet里跑Blocky,让Headscale指它。Blocky管上游加密,你手机解放了。

部署前,先想清目标

上Blocky前,明确你要啥:

目标1:全网无广告。tailnet里每个设备自动过滤DNS,用户零负担。

目标2:上游加密。Blocky到公共resolver用DoT。设备到Blocky已有WireGuard护着,最后一跳也别偷懒。

目标3:内网域名顺滑。私有服务像homeserver.ts.internal,全网认。

目标4:设备零配置。Headscale一推,客户端自动接管。

整体架构

流程超简单:

  1. 设备连Tailscale(经Headscale)。
  2. Headscale推DNS设置,指tailnet里的Blocky IP。
  3. 设备查DNS,直奔Blocky。
  4. Blocky对blocklist一查,坏的回NXDOMAIN,好转发上游。
  5. 上游用DoT问Cloudflare或Quad9。
  6. 结果缓存后回设备,全程WireGuard加密。你控基础设施,你定过滤。

现在为什么非这么干

2024年,隐私防广告是标配。但多数方案是设备一个个加,麻烦。网络级方案才牛。它能无限扩。新手机加tailnet?广告秒挡。去朋友家?保护还在。

对开发者、运维党,还能缩攻击面。你管DNS,你审blocklist,你挑resolver(要不要都行)。自建哲学,直接用到DNS。

下一步行动

Headscale已跑?加Blocky水到渠成。想换Unbound、Bind或Coredns都行,但Blocky简单,适合大多数人。

最好的是,不锁死。需求变?换个resolver。Headscale和Tailscale无感,支持灵活。

DNS太重要,别瞎外包。自己控,挡噪音,数据留网内。自建梦想,就这么近。动手吧!

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN