手机上的DNS加密,到底该怎么弄?一份写给普通人的实操指南

说实话,在写这篇文章之前,我一直觉得“DNS加密”这事儿离普通手机用户挺远的,以前想折腾,要么得会点编程,要么得在电脑上搞个软路由,门槛确实不低,但随着这两年大家对隐私安全越来越重视,手机系统本身也开始支持这项功能了,今天就来聊聊,如何不折腾、不搞花里胡哨的操作,直接在手机上把DNS加密给安排上。
一、为什么要给自己的手机“上一道锁”?聊聊DNS那点事儿
在动手之前,还是得稍微解释一下,我们到底在保护什么,我们用手机上网,比如打开百度,实际上并没有直接访问百度的服务器,而是先问“DNS服务器”:“喂,baidu.com的IP地址是啥?”DNS服务器告诉你答案,你的手机才能连上。
问题就出在这里,这个过程,传统上是明文传输的,这意味着,在你家的WiFi下,或者在运营商的网络上,理论上有人可以知道你正在访问哪些网站,更糟糕的是,他可以把你的请求劫持到钓鱼网站,或者给你塞一个让你头疼的广告,没错,这就是所谓的“DNS劫持”和“中间人攻击”。
而DNS加密,就是把你问路和导航这个过程,进行了加密处理,即便有人在旁边偷听,他看到的也只是一堆乱码,不知道你在访问哪个网站,这不仅是防窥探,也是保护个人信息安全的一个重要步骤。

目前主流的手机DNS加密方式有三种:DNS over TLS,DNS over HTTPS,还有最近在安卓上逐渐流行的DNS over QUIC。
对于普通用户来说,你不需要背这些缩写,简单理解:DNS over TLS和DNS over HTTPS就是把你的DNS查询包了一层加密外壳,区别在于,TLS用的是专用端口(853),HTTPS是用标准的443端口,伪装成了普通的网页流量,后者在一些防火墙严格的网络中穿透性更强一些,但速度上可能稍微慢一点点。
作为普通用户,我的建议是:只要你的手机支持,优先使用DNS over TLS,因为它最节能、延迟低,如果不支持,或者你遇到网络问题,再切到DNS over HTTPS。
三、苹果用户的福音:设置起来比你想象中简单
如果你是iPhone用户,那恭喜你,这应该是所有手机里最简单的,苹果从iOS 14开始就原生支持了DNS加密,而且是系统层面的,这意味着你设置的加密DNS能应用于所有的App和连接,哪怕你切到5G网络也管用。

具体操作步骤如下:
1、打开“设置” -> “无线局域网”。
2、找到你当前连接的WiFi名称,点击旁边的蓝色“i”图标。
3、往下滑,找到“配置DNS”这一项,默认是“自动”,点击它,然后切换为“手动”。
4、现在是关键一步,你需要删除系统默认的那些DNS服务器,然后点击“添加服务器”,你要输入的不是普通的DNS,而是支持加密的专用地址。
这里我推荐几个比较靠谱的公共加密DNS服务器地址:
Cloudflare(1.1.1.1):速度和隐私保护都做得很好,在DNS over HTTPS模式下,地址是https://cloudflare-dns.com/dns-query;在DNS over TLS模式下,服务器是1.1.1.1 或1.0.0.1。
Google(8.8.8.8):老牌厂商,兼容性好,HTTPS地址:https://dns.google/dns-query;TLS服务器:8.8.8.8。
阿里的(223.5.5.5):国内节点多,速度非常快,HTTPS地址:https://dns.alidns.com/dns-query;TLS服务器:223.5.5.5 或223.6.6.6。
请注意:很多人在这一步会犯错,他们直接把1.1.1.1 填进去,以为这就加密了。不对! 标准的1.1.1.1 是不加密的,你必须在“配置DNS”里选择“手动”,然后填入特定的加密服务器地址,iOS系统没有提供直接配置加密方式的选项(除了通过描述文件或App),所以我们需要借助一些小技巧。
更简单的方法是,去App Store下载一个Cloudflare 1.1.1.1 或NextDNS 的应用,它们会自动帮你配置系统的加密DNS,下载安装后,一键开启,手机会弹窗询问是否允许安装VPN配置,点“允许”即可,这个“VPN配置”并不是真的跑你的所有流量,它只是系统一个叫“按需VPN”的功能,专门用来帮你接管并加密DNS请求。
如果你想“纯手工”且不使用App,那就需要借助第三方工具,比如Surge、Shadowrocket 等工具的能力,或者通过设置DNS over TLS profile,但对于大多数用户,强烈建议直接使用Cloudflare或NextDNS的App,这是最省心的方式。
四、安卓用户别急:你的选择可能更多,但路也更曲折
安卓这方面稍微复杂一点,好消息是,从Android 9 Pie开始,Google官方就加入了“私人DNS”(Private DNS)模式,这其实就是DNS over TLS,坏消息是,很多国产手机厂商为了优化性能,把这个功能藏得比较深,或者名字起得奇奇怪怪。
标准安卓系统(如Pixel、一加国际版等)的设置步骤:
1、打开“设置” -> “网络和互联网” -> “高级” -> “私人DNS”。
2、选择“私人DNS提供商主机名”这个选项。
3、输入主机名:1dot1dot1dot1.cloudflare-dns.com(对应Cloudflare的DNS over TLS)或dns.google(对应Google的)。
4、点击“保存”,你会看到状态变成“已连接”。
如果你找不到“私人DNS”选项怎么办?别急,有两个办法:
方法一:在WiFi设置里找。
有些手机把DNS加密写在了单个WiFi网络的详细设置里,长按你连接的WiFi,点击“修改网络”,勾选“高级选项”,然后找到“IP设置”改为“静态”,在DNS1和DNS2处,填入加密DNS的IP地址?不对,这里的IP地址只能填不加密的DNS,所以这个方法对“私人DNS”模式无效。
方法二:还是用App吧。
安卓生态里,NetGuard 防火墙支持DNS加密,但它是付费的。AdGuard 的安卓版也是个不错的选择,它不仅能加密DNS,还能拦截广告,安装后,在它的内置设置里开启“DNS保护”,选择“首选DNS服务器”为“Cloudflare DNS”或“Quad9 DNS”,并确保传输协议是“DNS over HTTPS”或“DNS over TLS”,它会利用安卓的VPN接口来自动接管,效果和系统原生的私人DNS一样。
特别提醒: 如果你的手机是小米、华为、OPPO、vivo等,请在“设置”里搜一下“私人DNS”或“加密DNS”,有些系统把它放在了“WiFi” -> “高级设置” -> “DHCP” -> “静态”里,但这只是手工填IP,不是加密,如果系统自带“私人DNS”菜单,直接填主机名即可;如果没有,最稳妥的方案永远是安装一个AdGuard之类的全功能App。
1、明明设置了,但测速显示未加密?
很多网上的所谓“DNS泄漏测试”网站,测的是你的普通DNS,而不是你的加密DNS,建议下载专门的App(如DNS Check 或1.1.1.1 应用自带的网络检查功能),如果你用了App,通常它会直接告诉你状态。
2、手机突然变慢了?
大概率是你选的加密DNS服务器有延迟,Cloudflare和Google的海外节点有时会抽风,这时候可以试试Alibaba DNS over TLS(dns.alidns.com),或者DNSPod(dot.pub),如果你用的是AdGuard,试着关闭“过滤HTTPS请求”或“拦截第三方Cookie”功能,它们会拖慢浏览器速度。
3、装了App后,其他App连不上网?
通常是DNS解析卡住,或者App的VPN权限冲突,尝试重启一下手机,或者去App设置里换个DNS服务器,如果还不行,先卸载App观察。
4、“私人DNS”模式连不上,显示错误?
可能是你的网络环境(比如公司WiFi、学校校园网)屏蔽了853端口,这时候你只能选择使用App走 DNS over HTTPS 或 DNS over QUIC 模式,因为HTTPS的443端口很少被完全封禁。
说实话,DNS加密不是灵丹妙药,它只能保护你的域名查询过程不被监听和篡改,但你访问的网站内容本身(比如你在百度搜索了什么词)如果没启用HTTPS,还是能看到,如果DNS服务器本身作恶,加密也保护不了你。请选择可信的公共DNS服务商。
但至少,它能让你的手机在公共WiFi下更安全一些,也能屏蔽绝大多数运营商的弹窗广告和流量劫持,对于普通人来说,花三分钟装个App(比如Cloudflare的1.1.1.1或AdGuard),点一下开启,就能获得很大的安全提升。 这个过程,比装杀毒软件简单多了。
如果你是个动手能力强的朋友,完全可以按我今天说的,手动配置iOS的配置描述文件或Android的私人DNS,但如果嫌麻烦,记住这句话:下载一个靠谱的加密DNS App,一键开启。 保护隐私,从今天开始。
文章摘自:https://idc.huochengrm.cn/dns/26502.html
评论