跳到主要内容

大多数 Android 手机上有两项都和 DNS 打交道的功能,DNS 就是把网站名称转换成地址的那一步。一项是系统设置里的“私人 DNS”,负责加密这些查询;另一项是你的 VPN 应用,它会建立隧道,并通常自带一套 DNS 安排。两者同时工作时,有时相安无事,有时就出现经典现象:VPN 显示已连接,网页却怎么也打不开。

本文是写给想同时使用两者的人的设置指南。两者如何相互作用的完整理论,已经在 Android 上的私人 DNS 与 VPN 里讲过,这里不再重复,而是提供一套实用的操作顺序、选择模式的方法、主机名常见的坑、测试流程和排错表。如果你想先了解域名查询本身,可以读 DNS 是如何工作的,几分钟就能读完。

设置在哪里,各个模式是什么意思

私人 DNS 从 Android 9 开始提供。入口通常在网络或连接设置中,名称可能叫“私人 DNS”或“更多连接”。具体菜单名称因手机厂商和 Android 版本而异,找不到时在设置里搜索“私人 DNS”即可。

通常有三个选项:

  • 关闭。 Android 使用当前网络分配的 DNS 服务器,走传统的未加密方式。
  • 自动。 Android 会尝试对网络提供的服务器使用加密连接(即 RFC 7858 描述的 DNS over TLS)。如果服务器不支持加密,就回退到普通查询。
  • 私人 DNS 提供商的主机名。 你输入一台支持 DNS over TLS 的服务器的主机名,Android 只认这一台,不会回退。一旦连不上,查询就会失败。

关键在于,主机名模式在设计上是严格的。当你信任某个解析器、希望确保没有别的服务器应答时,这种严格很有用;但它也是最容易与 VPN 冲突的模式,因为 VPN 会改变手机能访问到哪些网络和服务器。

开着 VPN 时,Android 怎样选择 DNS

Android 上的 VPN 应用会创建自己的虚拟网络。Android 官方关于连接 VPN 的说明提到,系统会先请你批准连接,之后应用才会把流量引入该虚拟网络。这个虚拟网络通常自带 VPN 服务提供的 DNS 服务器,好让你的域名查询在隧道里进行。

此时私人 DNS 会怎样,取决于模式和机型:

  • 自动模式: 如果 VPN 网络的 DNS 服务器支持加密,手机就尝试加密查询;不支持的话,就在隧道内使用普通查询。无论哪种,查询通常都留在 VPN 的范围内。
  • 主机名模式: 许多手机即使在 VPN 连接时,仍会把查询发往你选定的主机名。这可能意味着查询在隧道内送到第三方服务器,但在某些设备和 VPN 应用组合下,也可能没有按你预期走隧道。
  • 关闭: 只有 VPN 自己的 DNS 安排在起作用。

由于不同设备和应用的行为不一样,不要凭想象。你会在后面的部分亲自测试。核心结论是:最稳妥的组合,就是你在自己手机上实际验证过的那一个。想更全面地了解加密查询与隧道之间的重叠关系,可以看 DNS over HTTPS 与 VPN 的区别。

合理的设置顺序

改动的先后顺序,会大大降低排错难度。每次只改变一个变量。

  1. 先只用 VPN。 把私人 DNS 设为关闭,按 如何在 Android 上设置 VPN 安装并登录 VPN 应用,然后连接。确认网页能打开,测试结果符合预期。
  2. 记下基准。 记录连上 VPN 时,DNS 泄漏测试页报告的解析器是谁。这是你的参照值。
  3. 把私人 DNS 切换为自动。 重新连接 VPN,打开几个网站,再测一次,记下变化。
  4. 只有想用指定解析器时,才试主机名。 按下一节的要点准确输入,重新连接 VPN,再测一次。
  5. 两种网络都测。 分别在 Wi-Fi 和移动数据下检查,因为每种网络分发的 DNS 不同。
  6. 保留能用的组合, 并写进笔记。以后若出问题,你可以回到一个已知良好的状态。

任何一步弄坏了东西,只撤销那一步。这就是这套顺序的意义。

三种日常设置的对照

情形 建议的私人 DNS 模式 原因
通勤族,一天里会开关几次 VPN 自动 没有固定服务器,网络切换时不会失效
远程办公,公司指定了解析器 主机名,仅在公司要求时使用 由公司策略决定解析器,需配合 VPN 测试
宿舍 Wi-Fi 过滤很严的学生 先自动,网页打不开再改为关闭 本地过滤可能拦截加密端口
几个人共用的家庭手机 自动 设置少,不懂技术的人也不易弄坏
常住酒店和机场网络的旅行者 自动 认证页面常在严格主机名下失败
正在排查泄漏的人 先关闭,再自动 便于干净地对比

共同的规律是:“自动”改动最少。只有确有理由才选主机名,并做好随时切回的准备。

主机名的几个易错细节

一旦使用主机名,小失误会带来大麻烦。

  • 填主机名,而不是 IP 地址或网址。 Android 期望的形式像 dns.example.net,前面没有 https://,后面也没有路径。纯数字地址会被拒绝。
  • 服务器必须在标准端口支持 DNS over TLS。 只提供 DNS over HTTPS(RFC 8484)的解析器,即使很优秀,也不能填在这里。
  • 拼写错误不会有提示。 一个字母写错,就可能让手机没有任何可用的查询,因为严格模式拒绝回退。如果保存设置后网页立刻打不开,先怀疑拼写。
  • 从服务商自己的页面复制, 不要从论坛帖子里复制,并确认那个页面使用 HTTPS。
  • 认证页面需要退路。 酒店和咖啡馆的 Wi-Fi 常会弹出一个登录页面,需要通过本地 DNS 解析。严格主机名下,这个登录页可能打不开。登录完成前先把私人 DNS 切到自动或关闭,登录后再切回来。
  • 有些公司网络会拦截加密端口。 如果单位封了 853 端口,主机名设置在该网络上就会失效。

十分钟测试这套组合

测试是区分“确实能用”与“但愿能用”的唯一一步。

  1. 关闭 VPN 测试, 私人 DNS 保持你选的模式。打开 DNS 泄漏测试页,记下解析器。
  2. 连接 VPN, 再打开同一页面,再记下解析器。如果变成了 VPN 服务所属的解析器,说明查询走了隧道;如果仍是你自己所在网络的运营商,就说明没有走。
  3. 同时打开 IP 检测页面。 地址应是 VPN 的,而不是你家或移动网络的。什么是 DNS 泄漏 讲解了如何读懂结果。
  4. 打开三类不同的网站: 新闻站、视频站,以及一个使用自家服务器的应用。如果只有一个站点出问题而其他正常,可能是针对该服务的 DNS 问题。
  5. 切换网络, 在 Wi-Fi 与移动数据之间切换,重做第 2 步。
  6. 断开后再检查。 关闭 VPN 后,查询应回到你的私人 DNS 设置。

想要比 DNS 更全面的连接检查清单,可以配合 如何检查 VPN 是否正常工作 使用。

按症状排错

症状 可能原因 可以尝试
VPN 已连接,但所有网页都打不开 严格主机名的服务器从 VPN 网络访问不到 把私人 DNS 设为自动并重新连接
网页先很慢,之后才能打开 查询超时后才回退 检查主机名拼写,试试自动模式
只有部分网站失败 某个服务使用自己的解析器或过滤查询 开关 VPN 各测一次同一个网站
连接状态下泄漏测试显示你的运营商 查询没有走隧道 试试关闭或自动,然后重新连接
酒店登录页打不开 严格模式拦截了认证页面的查询 切到自动,登录后再切回
Wi-Fi 下正常,移动数据下失败 运营商网络拦截加密端口 在该网络下使用自动模式
昨天正常,今天失败 Android 或应用更新改变了行为 重新执行基准测试

如果隧道已连接却什么都打不开,VPN 已连接但没有网络 也涵盖了与 DNS 无关的原因。

常见错误

  • 把私人 DNS 当成 VPN 的替代品,或把 VPN 当成加密查询的替代品。两者保护的内容不同。
  • 在主机名后面加上 https:// 或结尾斜杠。
  • 设置了主机名就忘了,后来网页变慢或打不开,反而怪 VPN。
  • 同时改私人 DNS、VPN 应用设置和所用网络,结果说不清是什么修好或弄坏了问题。
  • 只在 Wi-Fi 上测试,就以为移动数据下也一样。
  • 以为“已连接”的标志就证明查询安全。只有泄漏测试才能告诉你它们去了哪里。
  • 从来路不明的地方复制主机名。运营那台解析器的人,能看到你查询的域名。
  • 出门旅行时仍开着严格主机名,结果用不了认证页面。

局限与注意事项

私人 DNS 只加密手机与某一台服务器之间的查询。这能防止同一网络里的人读到你请求的域名,但不会隐藏你之后连接的地址,不会给你新的 IP 地址,也无法保护你免受恶意网站的伤害。VPN 隧道能让本地网络看不到你的流量,并让网站看到 VPN 的地址,但不会让你匿名。两者配合使用,各自弥补不同的缺口,前提是它们能够协同工作。

还要记住,你选择的 DNS 服务器背后总有人在运营。选用主机名,等于把信任从你的网络运营商转移到解析器的运营者。这可能是一笔不错的交换,但要明明白白地做。

总结

对大多数人来说,最省心的做法是:先把 VPN 设置好,让私人 DNS 保持“自动”,然后在 Wi-Fi 和移动数据下都用泄漏测试页检查。只有确有理由才用固定主机名,输入时务必准确,并准备好在网络或认证页面出问题时切回“自动”。每次只改一件事,并记下哪种组合有效。

如果你想要一个简单的 VPN 来试这些设置,价格页面 上的预付通行证可配合免费的 VPNclient 应用使用,下载页面 列出了官方应用链接。

常见问题

和 VPN 应用一起用,私人 DNS 选哪种模式最好?

对大多数人来说,“自动”模式最省事:只有当前网络的 DNS 服务器支持加密时,Android 才用加密查询,否则悄悄回退到普通查询。手动填写主机名能带来更多控制,但也是开着 VPN 时查询失败最常见的原因。

私人 DNS 能代替 VPN 吗?

不能。私人 DNS 只加密手机与某一台 DNS 服务器之间的域名查询,并不向你所在的网络隐藏你连接了哪些网站,也不会改变你的 IP 地址。VPN 隧道与私人 DNS 解决的是不同的问题。

私人 DNS 设为主机名时,一开 VPN 网页就打不开,为什么?

主机名模式会强制 Android 只通过加密连接与那一台服务器通信。如果 VPN 网络访问不到该服务器,或加密端口被拦截,查询就会失败,即使隧道已连接,网页也像坏了一样。把模式改成“自动”或“关闭”是最快的排查办法。

怎么测试 DNS 查询是否走了 VPN?

连上 VPN 后,在浏览器里打开 DNS 泄漏测试页面,看它报告的解析器是谁,再与关闭 VPN 时的结果比较。每次改动私人 DNS 后都要重测,因为不同组合的表现可能不同。

每次连接 VPN 都要改私人 DNS 吗?

不用。它是系统级设置,设成什么就保持什么。选一个能用的组合,测试一次,然后别再动它。只有当网络、Android 更新或 VPN 应用改变了查询行为时,才需要重新检查。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 安全

安卓“私人 DNS”与 VPN 如何配合

安卓的私人 DNS 与 VPN 都会接管域名查询。本文讲清两者同时开启时谁说了算、谁能看到什么,以及网页打不开时该怎么排查。

阅读约 10 分钟

VPN 基础

DNS 是如何工作的:从域名到 IP 地址

DNS 是把网站名称转换成设备实际连接的 IP 地址的查询系统。本文逐步讲解一次查询的过程,以及它为什么与隐私有关。

阅读约 9 分钟

VPN 安全

什么是 DNS 泄漏?

DNS 泄漏是指设备在 VPN 隧道之外查询网站地址。本文说明它为什么发生、如何检测,以及该怎么处理。

阅读约 10 分钟

VPN 安全

DNS over HTTPS 与 VPN 有何不同?需要两者一起用吗

DoH 与 DoT 让本地网络看不到你的 DNS 查询,VPN 则包住你的全部流量。了解各自覆盖什么、Android 私人 DNS 如何配合,以及何时需要两者并用。

阅读约 9 分钟

设备指南

如何在 Android 上设置 VPN

分步说明:从 Google Play 安装 VPNclient,用 My Pass 上的信息登录,接受 Android 连接请求并连接。

阅读约 6 分钟