Smart DNS 不是 VPN:那条 DNS 设置究竟改变了什么
Smart DNS 设置只为少数服务改写名字查询。它不是加密隧道,而这个差别决定了谁能看到你的流量。
你把电视指向一个 Smart DNS 解析器,某个流媒体应用开始工作,结论便自己写了出来:这是一条更便宜、装得更快的 VPN。并非如此,而这个差别不是抠字眼。改变的是电视询问某个主机名在哪里时得到的答案;没有改变的是每个数据包依旧以明文离开你家,走同一条路,从 ISP 早就知道的那个地址出去。神话是 DNS 设置就是隧道。现实更窄,而且一旦看清就更有用。
神话:改 DNS 会重定向你的流量
普通 DNS 告诉应用该连到哪里。Smart DNS 服务对选定的主机名返回属于服务商自家基础设施的地址,于是应用连到那里,而不是直连服务本身。随后服务商把这一条流转发到真正的目的地。设备上其他东西一动不动。
这正是这套把戏能在电视或游戏机上奏效的原因。没有客户端、没有界面、没有路由表条目、没有加密层。设备做的正是它一直做的事:解析名字,然后连到返回的结果。你改的是答案,不是每个数据包的路。
这个标签也被无关的 DNS 项目使用,所以请查服务商自己的文档,而不是从名字推断一组功能。并不存在标准的 Smart DNS 协议;一个产品的覆盖范围说明不了另一个产品的任何可靠情况。
究竟什么被改写,什么没有
按流而不是按设备来列,差别就很容易看见。
| Flow | Steered by Smart DNS? | Why |
|---|---|---|
| A supported streaming hostname | Yes, usually | The resolver returns a provider address for that name |
| The same app's other hostnames | Only if the provider lists them | Steering is per-name, and lists are curated |
| Your browser, email, game downloads | No | Their names resolve to the ordinary destination |
| Traffic from devices not using that resolver | No | Nothing forces a device onto a particular resolver |
| Payload encryption | No | Unrelated to name resolution |
你可以亲眼看到。向服务商的解析器询问某个主机名,再向公共解析器询问同一个名字:
dig +short @<provider-resolver> example-stream.example
dig +short @1.1.1.1 example-stream.example答案不同,说明在名字层面被改写。答案相同,说明要么该服务不覆盖这个名字,要么设备没有使用那个解析器——这种故障看起来像 DNS 配置错误,常被误认为账号坏了。
还有第二种故障,气味相同。许多服务商按你当前使用的公网地址授权,所以账号在地址变化之前一直可用。运营商级 NAT 轮换,或叠加在上面的 VPN,会移动那个地址,中继便拒绝你,而解析却仍然成功。注册表条目是一种访问控制,不是独占出口的证明。
加密 DNS 完全是第三件事
基于 HTTPS 的 DNS 与基于 TLS 的 DNS 保护你的设备与解析器之间的交换。它们加密并认证查询,使本地网络无法读取或改写它,而 DoH 把它承载在 443 端口的普通 HTTPS 流量里,这也是它对过滤器看起来像网页流量的原因。那是查询的机密性功能。
改写某个服务是另一种功能:答案本身指向一个中间人。一个产品可以同时提供两者,很多也确实如此,但一个并不蕴含另一个。加密你的查询从未把哪怕一个字节的视频搬到另一个国家。
所以「加密 DNS」回答的是谁能读你的查询。它不回答谁能看到你的流量,也不给你新的出口地址。DNS over HTTPS 规范 才是说明那层保护覆盖范围的正确参考,它对路由只字未提。
在每种安排里谁看到什么
用 Smart DNS 时,解析器看到你查询的名字,服务商的中继看到它承载的连接,而你的 ISP 依旧以明文结构看到其余一切:你联系了哪些地址、何时、多少。被改写的流中,内容到目的地为止仍受 TLS 保护,所以中继转发的是一个它读不了的加密会话——但它能看出你连接了、从哪里连、连了多久。
用 VPN 时,隧道运营方看到你的流量和目的地,这是一个集中的信任决定,而你的 ISP 只看到通往一个端点的加密流。暴露方式不同,并不自动更少。两种模式都不该用某个网站能否打开来评判。
速度跟着路径走,而不是跟着标签走。选择性中继可以让无关流量不绕路,这对本来会把一切都送进隧道的设备是实打实的好处。它也不是保证,而且没有任何安排承诺能永久访问一个正在主动检测它的服务。
什么时候 Smart DNS 才是合适的工具
当设备根本跑不了 VPN 客户端时——电视、游戏机、网络栈被锁死的机顶盒——而只有某个具名服务要紧时,它确实是合适的工具。当你刻意不想让那台设备上的每个数据包都走隧道时,它也合理。
当需求是加密、整台设备的出口地址,或对本地网络与 ISP 的防护时,它就是错误的工具。那些是隧道的属性,任何解析器设置都造不出来。如果你在同一台设备上继续开着 VPN,就要预期基于注册的授权会失效,因为你的公网地址现在是隧道的。
按顺序走完这个决定,遇到第一条为真的就停下:
- 你需要流量加密、整台设备换成新出口吗?用 VPN,并检查它的路由与例外,而不是它的已连接指示灯。
- 你只需要在一台无法隧道的设备上用少数具名服务吗?Smart DNS 是相称的。
- 你需要查询保持私密、但不搬动流量吗?那是加密 DNS,以上都不是。
- 服务商依赖你当前的地址吗?地址一变,就要预期中断。