首页
关于
私人 DNS 加密设置教程
更多
关于
私人 DNS 加密设置教程
搜索
默认分类
登录
搜索
234
累计撰写
39
篇文章
累计收到
2
条评论
首页
分类
默认分类
页面
关于
私人 DNS 加密设置教程
注册丨登录
搜索到
19
篇
标签为
DoT
的文章
2026-10-01
私人DNS选DoT还是DoH?加密协议区别与设备兼容性选择指南
TL;DR: 如果你只是在安卓"私人 DNS"那一栏填地址,你选的其实就是 DoT(DNS over TLS,标准端口 853,RFC 7858);如果你是在浏览器或 Windows 设置里开"安全 DNS",那通常是 DoH(DNS over HTTPS,标准端口 443,RFC 8484)。两者加密强度相近,真正的差别在"你的设备原生支持哪一个"和"所在网络放不放行对应端口"。选哪个,不是看谁更先进,而是看你在哪台设备、哪个网络环境下用。设置私人DNS时,为什么总要在DoT和DoH之间纠结?很多人打开加密 DNS 教程,会看到两类地址:一类是让你填一个"主机名"(比如 dns.google),另一类是让你填一串 https://…/dns-query 开头的网址。填法不同,背后用的协议就不同——前者是 DoT,后者是 DoH。这篇文章不打算像教科书那样把两种协议的报文格式拆开讲(本站另有一篇DoH/DoT/DoQ 三种加密协议对比做了深度科普,想刨根问底可以去看)。这里只解决一个实际问题:当你要给自己的手机、电脑、路由器配置私人 DNS 时,到底该填哪一类地址。一张表看懂:DoT和DoH在"设置"层面的区别对比项DoT(DNS over TLS)DoH(DNS over HTTPS)标准来源RFC 7858,2016 年发布RFC 8484,2018 年发布标准端口TCP 853TCP 443(复用 HTTPS 端口)封装方式DNS 报文直接跑在 TLS 连接上DNS 报文塞进一次 HTTP 请求里,再跑在 HTTPS 上你在设置里看到的样子填一个主机名/域名填一个 https:// 开头的 URL典型原生入口安卓"私人 DNS"菜单浏览器"安全 DNS"、Windows 11 设置与普通网页流量的区分度853 端口流量较容易被单独识别混在大量 443 流量里,较难单独区分可以这样理解:DoT 是"专门为 DNS 修了一条加密专线",DoH 是"把 DNS 伪装成普通 HTTPS 网页流量走"。你的设备原生支持哪个?别拿浏览器的习惯套手机这是实操中最容易踩的坑——不同系统的加密 DNS 入口,默认走的协议不一样:安卓手机:系统设置里那个"私人 DNS",根据 Android 官方说明,用的是 DNS over TLS(DoT)。你在那里填的主机名,就是 DoT 地址;安卓这个菜单目前并不直接支持填 DoH 的 URL。浏览器(Chrome、Edge、Firefox):设置里的"安全 DNS / 使用安全 DNS 指定服务提供商",走的是 DoH,需要你填 URL 模板。它只管浏览器自己的解析,不影响手机里其他 App。Windows 10/11:较新版本的网络设置里,原生支持的加密 DNS 是 DoH(通过 DoH 模板配置),系统层面的 DoT 支持相对有限。macOS / iOS:主要通过描述文件或系统设置支持 DoH,DoT 支持视版本而定。结论很直接:想给安卓整机开加密 DNS,你基本没得选,就是 DoT;想给浏览器单独开,就是 DoH。 别在安卓的"私人 DNS"框里硬塞一个 https:// 网址,那是填不进去的。网络环境可用性:853和443端口的现实差异填对了协议,还要看你的网络放不放行。这里需要客观说明两个事实:RFC 7858 在引言里就提到,DoT 依赖一个"知名端口"(853),而这个知名端口有可能被某些防火墙阻断。这意味着在部分管控较严的网络里,853 端口的出站连接可能不通。RFC 8484 则指出,DoH 复用了 HTTPS 的默认端口 443,并且可以和其他 HTTPS 流量混在同一条连接上,这让路上的设备更难把 DNS 流量单独挑出来干扰。翻译成大白话:443 是所有正常上网都必须走的端口,几乎没有哪个网络会全封 443;而 853 是个相对小众的端口,理论上存在被单独限制的可能。但请注意——这只是协议层面的客观特性,不代表现实中一定会被封。多数家庭宽带、手机流量网络下,两者都能正常使用;只有在企业网、校园网、某些受限网络环境里,才可能遇到"DoT 连不上、换 DoH 就通"的情况。如果你在某个网络下私人 DNS 频繁连不上,可以两个都试一下。自建加密DNS时,两种协议的证书要求差别如果你不是用现成公共服务,而是自己搭一套加密 DNS(比如在 AdGuard Home、Pi-hole 上开启加密监听),两种协议对证书的要求也略有不同:DoT:服务器需要一份受信任的 TLS 证书,并与你在客户端填的主机名匹配。客户端会按 TLS 常规流程校验证书链,证书不匹配或过期就会握手失败——这也是安卓"指定主机名"模式下提示证书错误的常见原因。DoH:同样需要一份有效的 TLS 证书,因为它本质就是 HTTPS。区别在于 DoH 走的是标准 HTTPS 证书校验(RFC 8484 引用了 RFC 2818 的主机名校验规则),任何能让浏览器正常打开 https://你的域名 的证书,基本就能让 DoH 跑起来。实务上的建议是:自建时最好给服务器域名签一张正规 CA 证书(比如 Let's Encrypt),这样 DoT 和 DoH 都能用;用自签证书会导致客户端校验失败,需要额外手动导入信任,普通用户不推荐。决策表:什么场景选哪个你的场景建议选原因安卓整机开私人 DNSDoT系统原生菜单只支持 DoT只给浏览器开加密 DNSDoH浏览器安全 DNS 走 DoHWindows 10/11 系统级加密DoH系统设置原生支持 DoH所在网络疑似限制 853 端口优先试 DoH443 更难被单独阻断自建服务器、想一套证书两边通两种都配同一份正规证书可同时服务 DoT(853) 与 DoH(443)企业/校园网有内网域名要解析先测连通性再定严格模式可能挡住内网解析至于第三种加密协议 DoQ(DNS over QUIC),它更年轻、主要在部分实验性客户端和新一代浏览器中出现,本站那篇三协议深度对比有专门讲解,普通用户现阶段了解即可,设置入口里一般还碰不到它。常见问题 FAQQ:DoT 和 DoH 加密效果一样吗?哪个更安全?A:两者底层都依赖 TLS 加密,对"防窃听、防篡改"的保护强度是同一量级的,区别主要在封装方式和部署位置,而非谁更安全。Q:我能同时开安卓的 DoT 和浏览器的 DoH 吗?会不会冲突?A:通常可以并存。安卓 DoT 作用于整机解析,浏览器 DoH 只接管浏览器自己的解析;少数情况下两者指向不同服务器可能带来解析结果不一致,建议保持指向同一家服务商。Q:为什么我填了 DoT 主机名却提示"无法连接到私有 DNS 服务器"?A:多半是 853 端口在当前网络被限制,或证书校验失败。可先切换到"自动"模式观察,或换一家同时提供 DoH 的服务测试。参考来源RFC 7858 — Specification for DNS over TLS (TLS), IETF, 2016:支撑"DoT 标准、TCP 853 端口、知名端口可能被防火墙阻断、两种隐私剖面"等事实。RFC 8484 — DNS Queries over HTTPS (DoH), IETF, 2018:支撑"DoH 标准、封装进 HTTP、复用 443 端口、可与其他 HTTPS 流量混合、引用 RFC 2818 证书校验"等事实。Android Developers — Android 9 DNS privacy / Private DNS 使用 DNS-over-TLS:支撑"安卓私人 DNS 走 DoT"的官方定义。Google Public DNS — Secure transports (DoT 853 / DoH 443 端点对照):支撑"同一家服务商 DoT 用 853、DoH 用 443 URL"的端点对照示例。
2026年10月01日
3 阅读
0 评论
0 点赞
2026-10-01
私人DNS是什么?一文看懂私人DNS原理、作用与适用人群
TL;DR: 手机设置里的"私人DNS",是安卓 9(Android Pie)开始由系统原生提供的一项功能,本质是把原本明文发出的域名查询,通过 TLS 加密隧道发给指定的加密 DNS 服务器(协议即 DNS over TLS,简称 DoT,标准端口 853,见 RFC 7858)。它能防止你"查了哪个网站"被局域网、运营商偷看或中途篡改,但它不是 VPN——只加密"查域名对应地址"这一步,不加密网页内容,也挡不住恶意软件去改 hosts 文件。私人DNS到底是什么?先从一个比喻说起我们可以把上网想象成打电话:你想联系"张三",但手机只能拨号码,于是需要先查一本"电话簿"——你说一句"张三的号码是多少",电话簿回给你一串数字。这本电话簿就是 DNS(域名系统),那个查询动作就是 DNS 查询。问题在于,传统 DNS 查询是明文的,像一张写在明信片上的便签:从你的手机到电话簿服务器之间,路过的每一个环节(家里的路由器、咖啡店的 WiFi、运营商的线路)都能读到你写了什么。你查了哪家银行、哪个购物网站、哪台设备,全程可见。"私人 DNS"做的事,就是把这张明信片塞进一个密封信封:查询内容在手机本地用 TLS 加密,到达加密 DNS 服务器后才拆开。路上任何人只能看到"你在和某个加密 DNS 服务器通信",看不到具体查了哪个域名。安卓设置里的"私人DNS":官方定义到底是什么很多人第一次见到"私人 DNS"这四个字,是在安卓手机的「设置 → 网络和互联网 → 高级」里面。根据 Android 官方文档,从 Android 9(Pie)开始,系统引入了名为"Private DNS"的机制,它使用 DNS over TLS 为 DNS 查询提供安全与隐私保护。进入该菜单后,通常有三个选项:选项含义关闭退回传统明文 DNS,完全不加密自动(Automatic)系统尝试用加密 DNS,若网络不支持则静默回退到明文(即 RFC 7858 所说的"机会式隐私")指定主机名(Private DNS provider hostname)强制走你填写的加密 DNS 服务器,连不上就直接报错,不回退明文(严格模式)需要强调:安卓这个"私人 DNS"菜单,走的是 DoT(端口 853),而不是浏览器里常见的 DoH。 如果你在浏览器设置里看到"安全 DNS",那通常是另一套基于 HTTPS 的实现。两者最终目的相似,但技术路径不同,下文和本站加密 DNS 首页有专门区分。它的工作原理:TLS 隧道到底包了一层什么按照 RFC 7858 的规定,一台支持 DoT 的 DNS 服务器必须在 TCP 的 853 端口上监听并接受连接;客户端想获得隐私时,也要主动向服务器的 853 端口建立一条 TCP 连接,紧接着完成 TLS 握手。握手通过后,这条通道就被加密了,之后所有的查询和响应都在这条加密通道里传输。RFC 7858 还明确了一条安全细节:853 端口上绝不允许传输明文 DNS 消息,哪怕 TLS 握手失败也不行——这样做是为了防止"降级攻击",即有人故意让你的加密连接失败,逼你退回明文。和这个机制配套的还有两种"信任等级":机会式隐私(Opportunistic):能加密就加密,连不上就算了,优先保证能用;密钥固定/指定主机名(Key-pinned):你事先认准某台服务器的身份证书,只信它一家,连不上就报错,安全性更强但更"挑网络"。安卓的"自动"对应前者,"指定主机名"对应后者。私人DNS能帮你挡住什么,又挡不住什么这是最容易被误解的地方。一张表说清楚:场景私人DNS(加密)能防吗在公共 WiFi 下,别人偷看你查了哪些域名能,查询内容被 TLS 加密中途有人篡改你的 DNS 回答、把你导去假网站能,TLS 校验服务器身份,伪造回答通不过运营商或本地网络记录你的浏览域名偏好能,他们只能看到你在和加密 DNS 服务器通信加密网页(HTTPS)本身的内容不需要——网页内容本来就该由 HTTPS 加密不加密网页(HTTP)的内容不能,私人 DNS 只管"查地址"那一步恶意软件在你手机里改 hosts 文件不能,那是系统本地文件层面的问题病毒、钓鱼链接、木马下载不能,那是内容与终端安全范畴一句话总结:私人 DNS 保护的是"你和 DNS 服务器之间这一段路",不是你的整段上网。 它不是 VPN,VPN 加密的是你几乎所有流量;私人 DNS 只加密域名查询这一小类流量。它和运营商DNS、公共DNS、自建DNS是什么关系这几个概念经常被混在一起,其实它们是不同维度的东西:运营商 DNS:你插卡、连宽带后自动分配的那台 DNS,通常明文、默认开启;公共 DNS:像 Google、Cloudflare 等提供的免费递归 DNS 服务,你可以手动指定地址;其中一部分同时支持 DoT/DoH 加密;自建 DNS:自己在服务器上搭一套解析服务(比如 AdGuard Home),地址由你说了算。"私人 DNS"描述的是传输方式(加密),而不是某一台特定的服务器。你可以把私人 DNS 指向某家公共加密 DNS,也可以指向自己家搭的加密 DNS。本站的免费加密 DNS 服务汇总整理了常见可选地址,可按需挑选。你属于该开私人DNS的那一类人吗?如果你符合下面任意两条,就建议开启:经常在咖啡店、机场、酒店等公共 WiFi 下上网;在意"运营商能看到我访问了哪些网站"这种长期隐私画像;曾遇到过打开网页被强制跳到广告页、运营商登录页;想要一个"设一次、全局生效"的加密方案,而不是每个 App 单独配。反过来,如果你长期只在自己家里、受信任的网络环境使用,且对隐私不敏感,那它对你的提升有限;部分校园网、企业内网还依赖内网域名,强制指定严格模式的私人 DNS 可能导致内网服务打不开——这时建议先用"自动"模式观察。具体连不上时的排查,可参考本站安卓私人 DNS 连不上的排查全流程。常见问题 FAQQ:私人 DNS 开了之后会不会变慢?A:加密握手确实增加了一点点开销,但主流加密 DNS 服务器都有任播节点,实测多数场景下差异很小,某些情况下反而比运营商 DNS 更快。Q:iPhone 上也有"私人 DNS"吗?A:iOS 没有安卓那个同名菜单,它通过"配置描述文件"来开启加密 DNS,设置路径和安卓不同,但底层同样是 DoT/DoH 这类加密协议。Q:私人 DNS 能代替 VPN 吗?A:不能。私人 DNS 只加密域名查询,VPN 加密的是你几乎所有网络流量,两者解决的问题范围完全不同。参考来源RFC 7858 — Specification for DNS over Transport Layer Security (TLS), IETF, 2016:支撑"DoT 标准、TCP 853 端口、机会式与密钥固定两种隐私剖面、853 端口禁止明文传输"等事实。Android Developers — Behavior changes in Android 9 (Pie) DNS privacy:支撑"Android 9 起系统引入 Private DNS、应用需遵循 DNS-over-TLS 行为"的官方定义。Google Public DNS — Get Started (Android Private DNS 配置说明):支撑"Android 9+ 在 设置 → 网络和互联网 → 高级 → 私人 DNS 中配置主机名"的操作路径。Google Support — Manage advanced network settings on your Android phone (Private DNS 三模式):支撑"关闭 / 自动 / 指定主机名"三档模式的官方说明。
2026年10月01日
3 阅读
0 评论
0 点赞
2026-10-01
路由器设置私人DNS教程:全家设备统一加密DNS(小米/TP-Link/OpenWrt)
TL;DR 一句话结论:在路由器 WAN 口或 DHCP 里填 1.1.1.1、8.8.8.8 这类地址,只是把运营商的明文 DNS 换成了公共明文 DNS,并不等于加密。想让全家手机、电脑、电视都用上加密 DNS,现实里只有三条路:①路由器 DHCP 下发自定义 DNS(最简单、全家生效、但不加密);②刷 OpenWrt 后用 Stubby / AdGuard Home 做 DoT 上游(真加密、有一定门槛);③旁路由跑 AdGuard Home(灵活、推荐进阶用户)。路由器填了 DNS 地址,为什么不等于"私人 DNS"?很多人搜"路由器怎么设置私人 DNS",照着教程在后台填了一串 IP,以为就万事大吉了。这里必须先把概念讲清楚,否则后面全是白做。传统 DNS 查询是明文的:你的手机问"www.baidu.com 的 IP 是多少",这个问题在网络上是裸奔的,运营商、公共 Wi-Fi 监听者、甚至路由器本身都能看到你查了哪些域名。所谓"私人 DNS"或"加密 DNS",指的是用 DoT(DNS over TLS,端口 853)或 DoH(DNS over HTTPS,端口 443)把这个查询包加密起来,中间人看不到域名内容。而你在路由器后台填的 1.1.1.1、223.5.5.5,只是换了一个明文 DNS 服务器的 IP 地址。查询依然走 53 端口明文发送,只不过从运营商的 DNS 换成了 Cloudflare 或阿里的 DNS。好处是可能更快、更少劫持,但隐私保护层面和原来没有本质区别。两者的协议差异可以参考本站的 DoH/DoT/DoQ 协议对比文章。方案一:路由器 DHCP 下发自定义 DNS(最简单,但不加密)如果你只是想全家设备统一用某个公共 DNS(比如解决某个网站打不开、想更快解析),而不追求加密,这是最省事的方案。原理是:路由器通过 DHCP 告诉所有连进来的设备"请用这个 DNS",设备自动获取后就跟着走。TP-Link 路由器操作路径浏览器登录路由器管理后台(新固件通常是 tplinkwifi.net,旧款可能是 192.168.0.1)。进入 高级设置 → 网络 → 互联网(WAN),找到"DNS"一栏,选择"使用以下 DNS 地址"。填入首选和备用 DNS(如 223.5.5.5、223.6.6.6),保存。旧款绿色/蓝色界面的 TP-Link,路径是 网络参数 → WAN 口设置 → 高级设置 → 手动设置 DNS 服务器。以上路径来自 TP-Link 官方服务支持文档。不同型号固件版本略有差异,找不到时就在后台左侧菜单里找"WAN"或"上网设置"。小米 / Redmi 路由器操作路径浏览器访问 miwifi.com 或默认地址 192.168.31.1 进入 Web 后台。进入 常用设置 → 局域网设置 → DHCP 服务,在这里可以配置 DHCP 相关参数。部分型号在"上网设置"里也能改 WAN 口 DNS,按界面提示填写即可。以上路径来自小米官方帮助中心的 DHCP 服务说明。注意:小米路由器官方固件目前不支持直接填写 DoT/DoH 加密 DNS 上游,只能填 IP 形式的明文 DNS。这个方案的优缺点优点:零门槛、所有连接设备自动生效、不用逐台设置。缺点:依然是明文 DNS,只是换了服务器;运营商仍能看到你的域名查询;不防劫持的场景下收益有限。方案二:OpenWrt + Stubby 实现全家 DoT 加密(真加密,有门槛)如果你有一台可以刷 OpenWrt 的路由器,这是实现"全家设备自动走加密 DNS"最干净的方案。OpenWrt 官方 Wiki 给出的标准做法是用 Stubby 做本地 DoT 存根解析器,流程是:局域网设备 → dnsmasq(53端口)→ stubby(5453端口)→ 加密 DoT 到上游(853端口)所有设备感知不到任何变化,它们还是向路由器的 53 端口发明文查询,但路由器内部已经用 TLS 加密转发到了上游 DoT 服务器。简要步骤(以官方 Wiki 为准):进入路由器 SSH 命令行,执行 opkg update && opkg install stubby。编辑 /etc/stubby/stubby.yml,配置你要用的 DoT 上游(如 Cloudflare 的 one.one.one.one、Quad9 的 dns.quad9.net)。在 dnsmasq 配置里把转发地址指向 127.0.0.1#5453。确保路由器通过 DHCP 把自己广播为 DNS 服务器,这样局域网设备自动受益。建议在防火墙里封掉 WAN 口的 TCP/UDP 53 端口出站,防止设备绕过加密直发明文 DNS。上游 DoT 地址可以参考本站整理的免费加密 DNS 地址清单。方案三:旁路由跑 AdGuard Home(进阶推荐)如果你的主路由不能刷 OpenWrt(比如运营商定制光猫、品牌固件锁死),旁路由是另一条现实路线:用一台旧手机、树莓派、或者便宜的小主机跑 AdGuard Home,作为旁路网关接入现有网络,主路由把 DHCP 的 DNS 指向这台旁路由。这样做的好处是:主路由不用动,旁路由想刷就刷、想换就换;AdGuard Home 既支持 DoT/DoH 上游加密,又自带广告过滤和规则订阅,一台设备解决两个需求。详细搭建方法我们会在本系列后续的自建 AdGuard Home 教程里展开,这里先给概念。三种方案对比方案加密效果设置难度全家生效适合人群路由器 DHCP 填公共 DNS IP无加密,仅换服务器★ 极低是只想换个快 DNS 的普通用户OpenWrt + Stubby 做 DoT全链路加密(DoT 853)★★★★ 较高是有刷机经验、追求隐私的用户旁路由 AdGuard Home全链路加密 + 广告过滤★★★ 中等是不想动主路由、想兼顾去广告的用户常见问题 FAQQ1:我在路由器里填了 1.1.1.1,为什么还是被 DNS 劫持?因为 1.1.1.1 只是个明文 IP,运营商或中间设备依然可以在 53 端口上做劫持和污染。想真正防劫持,必须走 DoT 或 DoH 加密通道,也就是方案二或方案三。Q2:怎么判断我的路由器支不支持加密 DNS?普通品牌固件(TP-Link 家用款、小米官方固件、华为家用款)的后台通常只有填 IP 的地方,没有"DoT 主机名"或"DoH URL"输入框。支持加密上游的往往是 OpenWrt、梅林、pfSense 这类第三方固件,或者企业级路由器。Q3:改了路由器 DNS 后,家里所有设备都要重新连 Wi-Fi 吗?不需要重连 Wi-Fi。但设备需要重新获取一次 DHCP 租约才能拿到新的 DNS 地址——一般等几分钟自动刷新,或者手动断开重连一次 Wi-Fi 即可。Q4:旁路由和主路由是什么关系?会影响网速吗?旁路由不承担拨号和 NAT,只负责 DNS 和可选的过滤。正常上网流量还是主路由直接转发,旁路由只处理 53 端口的 DNS 查询,对网速几乎没有影响。更多设备端的私人 DNS 设置教程,可以浏览本站的 私人 DNS 设置教程合集。参考来源TP-Link 官方服务支持《如何修改路由器登录帐号以及判断 DNS 设置是否正常?》——支撑文中 TP-Link 旧固件 WAN 口/DHCP DNS 设置路径(网络参数→WAN口设置→手动设置DNS服务器)。https://service.tp-link.com.cn/detail_article_575.htmlTP-Link 官方 FAQ《How to change DNS Servers on TP-Link Routers》——支撑新固件界面路径(Advanced > Network > Internet > Use the Following DNS Addresses)。https://www.tp-link.com/ph/support/faq/1711/小米官方帮助中心《【路由器】DHCP服务》——支撑小米路由器 DHCP 服务入口(常用设置→局域网设置→DHCP服务)及管理地址 miwifi.com / 192.168.31.1。https://ics-resources.xiaomi.com/ics-resources/articles/60516fba5078534fd7632cbe.htmlOpenWrt 官方 Wiki《Stubby》——支撑 OpenWrt 上用 Stubby 做 DoT 加密的架构(dnsmasq:53 → stubby:5453 → encrypted:853)、安装命令与配置要点。https://openwrt.org/docs/guide-user/services/dns/stubby
2026年10月01日
2 阅读
0 评论
0 点赞
2026-10-01
Linux私人DNS设置教程:Ubuntu/Debian 配置DoT(systemd-resolved详解)
TL;DR: Ubuntu/Debian 默认用 systemd-resolved 做本地 DNS 解析(监听在 127.0.0.53:53),它从 systemd 239 版本开始原生支持 DNS over TLS(DoT)。配置方法:编辑 /etc/systemd/resolved.conf 或在 /etc/systemd/resolved.conf.d/ 下新建一个 .conf 文件,写入 DNS=1.1.1.1 和 DNSOverTLS=yes,然后 sudo systemctl restart systemd-resolved,最后用 resolvectl status 验证即可。不需要装任何第三方软件。Ubuntu/Debian 的 DNS 架构:先搞清楚 systemd-resolved很多人刚上手 Linux 时会困惑:我明明改了 /etc/resolv.conf,为什么重启又变回去了?这是因为从 Ubuntu 16.04(以及 Debian 10)开始,系统默认使用 systemd-resolved 作为本地 DNS 存根解析器。它的工作方式是这样的:systemd-resolved 作为一个系统服务在后台运行。它在本地 127.0.0.53 的 53 端口上监听,扮演一个「DNS 中转站」的角色。/etc/resolv.conf 是一个软链接,指向 /run/systemd/resolve/stub-resolv.conf,里面只写了一行 nameserver 127.0.0.53。所有程序的 DNS 请求都先发给本地的 127.0.0.53,再由 systemd-resolved 转发到真正的上游 DNS 服务器。所以你要配置加密 DNS,正确的做法不是改 /etc/resolv.conf,而是改 systemd-resolved 的配置文件——因为加密是在 systemd-resolved 转发给上游那一段做的。先确认你的系统确实在用 systemd-resolved:systemctl status systemd-resolved如果显示 active (running) 就对了。再确认一下 /etc/resolv.conf 是不是软链接:ls -l /etc/resolv.conf正常应该显示指向 /run/systemd/resolve/stub-resolv.conf 或 /run/systemd/resolve/resolv.conf。配置 DoT:编辑 resolved.confsystemd-resolved 的主配置文件是 /etc/systemd/resolved.conf。官方文档推荐的做法是不要直接改主文件,而是在 /etc/systemd/resolved.conf.d/ 目录下新建一个 drop-in 配置文件,这样升级系统时不会被覆盖。第一步:创建 drop-in 配置文件sudo mkdir -p /etc/systemd/resolved.conf.d/ sudo nano /etc/systemd/resolved.conf.d/99-opendns.conf第二步:写入配置内容在文件里填入以下内容:[Resolve] DNS=1.1.1.1#one.one.one.one 1.0.0.1#one.one.one.one FallbackDNS=9.9.9.9#dns.quad9.net DNSOverTLS=yes逐行解释:配置项含义DNS=1.1.1.1#one.one.one.one指定上游 DNS 服务器。# 后面是服务器的主机名,用于 TLS 证书校验和 SNI。格式是 IP地址#主机名FallbackDNS=9.9.9.9#dns.quad9.net备用 DNS,当主 DNS 连不上时自动切换DNSOverTLS=yes开启 DoT 加密。yes = 强制加密,不支持 TLS 的服务器会直接失败;opportunistic = 优先加密,不支持就降级明文;no = 关闭注意:DNSOverTLS=yes 模式下,如果服务器证书验证失败,所有 DNS 请求都会失败。所以一定要写对 # 后面的主机名,让 systemd-resolved 能正确校验证书。如果你只是想试试水,可以先设成 opportunistic,不会因为证书问题断网。第三步:重启服务使配置生效sudo systemctl restart systemd-resolved第四步:验证配置运行:resolvectl status输出里你应该能看到类似这样的内容:Link 2 (eth0) Current Scopes: DNS Current DNS Server: 1.1.1.1 DNS Servers: 1.1.1.1 1.0.0.1 DNS OverTLS: yes关键看最后一行 DNS OverTLS: yes——这就说明 DoT 已经开启了。再用 resolvectl query 测一下解析是否正常:resolvectl query google.com如果能返回 IP 地址,说明 DoT 通道工作正常。不想用 drop-in?直接改主文件也行如果你觉得多建一个文件麻烦,也可以直接编辑 /etc/systemd/resolved.conf:sudo nano /etc/systemd/resolved.conf找到 [Resolve] 段,把下面几行前面的注释(#)去掉并改成:[Resolve] DNS=1.1.1.1#one.one.one.one FallbackDNS=9.9.9.9#dns.quad9.net DNSOverTLS=yes保存后同样 sudo systemctl restart systemd-resolved。两种方法效果完全一样,drop-in 的好处是更干净、不污染系统自带的主配置文件。常见坑与排查坑一:NetworkManager 接管了 DNS如果你用的是带桌面环境的 Ubuntu(GNOME),NetworkManager 可能会通过 DHCP 自动下发 DNS 服务器,把你手动配的 DNS= 覆盖掉。排查方法:运行 resolvectl status,看「Current DNS Server」是不是你自己设的 1.1.1.1。如果不是,说明 NetworkManager 给你的网卡分配了别的 DNS。解决办法:在 NetworkManager 里手动设置该连接的 DNS:打开「设置 → 网络 → 你的连接 → 详细信息 → IPv4」。把「DNS」改成手动,填入 1.1.1.1。关掉「自动 DNS」开关。坑二:改了 resolv.conf 不生效记住:在 Ubuntu/Debian 上,直接编辑 /etc/resolv.conf 是没用的——它是软链接,重启或重新联网后会被 systemd-resolved 重新生成。你所有的配置都应该写在 resolved.conf 或 drop-in 文件里。坑三:开了 DoT 之后上不了网大概率是 # 后面的主机名写错了,导致 TLS 证书校验失败。排查方式:先把 DNSOverTLS 临时改成 opportunistic,重启服务。如果能上网了,说明就是证书校验的问题,检查主机名拼写。确认主机名正确后,再改回 yes。另外注意:DNSOverTLS=yes 需要服务器真的支持 DoT(监听 853 端口)。不是所有公共 DNS 都支持 DoT,Cloudflare(1.1.1.1)、Quad9(9.9.9.9)、Google(8.8.8.8)都支持。可以参考本站整理的 免费加密 DNS 地址列表。其他发行版的差异Fedora:默认也是 systemd-resolved,配置方法完全一样。Arch Linux:默认不一定启用 systemd-resolved,需要手动 sudo systemctl enable --now systemd-resolved 并把 /etc/resolv.conf 软链接到 /run/systemd/resolve/stub-resolv.conf。没有 systemd 的发行版(如 Alpine、部分嵌入式系统):用不了 systemd-resolved,需要换 stubby、dnscrypt-proxy 等独立 DoT/DoH 客户端。常见问题 FAQQ:systemd-resolved 支持 DoH 吗?A:不支持。systemd-resolved 只支持 DoT(DNS over TLS),不支持 DoH。如果你在 Linux 上需要 DoH,得用 dnscrypt-proxy 或 cloudflared 这类第三方工具。DoT 和 DoH 都是 TLS 加密,安全性相当,DoT 配置更简单(systemd 原生支持)。Q:配置完需要重启电脑吗?A:不需要。sudo systemctl restart systemd-resolved 就够了。本地 DNS 缓存会清空,第一次查询会稍慢一点,之后就正常了。Q:DoT 会影响网速吗?A:DNS 查询本身只占极少量流量,DoT 多了一次 TLS 握手,但 systemd-resolved 有本地缓存,日常浏览几乎感觉不到延迟。如果你对速度有疑虑,可以看看本站的 私人 DNS 测速方法。Q:怎么恢复默认 DNS 设置?A:删掉你建的 drop-in 文件:sudo rm /etc/systemd/resolved.conf.d/99-opendns.conf,然后重启 systemd-resolved。如果你是直接改的主文件,把 DNS= 和 DNSOverTLS= 行前面重新加上 # 注释掉就行。参考来源freedesktop.org — resolved.conf.d 官方文档:支撑 DNS=、FallbackDNS=、DNSOverTLS=(yes/opportunistic/no)的参数定义,以及 IP地址#主机名 格式用于证书校验和 SNI 的官方说明。URL:https://www.freedesktop.org/software/systemd/man/latest/resolved.conf.d.htmlfreedesktop.org — systemd-resolved.service 官方文档:支撑 systemd-resolved 作为本地 DNS 存根解析器、监听 127.0.0.53、从 resolved.conf 读取全局 DNS 配置的架构说明。URL:https://www.freedesktop.org/software/systemd/man/latest/systemd-resolved.service.htmlDebian Manpages — systemd-resolved.service:支撑 systemd-resolved 作为本地存根解析器、维护 /run/systemd/resolve/stub-resolv.conf、监听 127.0.0.53:53 的官方手册页。URL:https://manpages.debian.org/testing/systemd-resolved/systemd-resolved.service.8.en.htmlDebian Manpages — resolved.conf:支撑 DNSStubListener、/etc/systemd/resolved.conf.d/ drop-in 配置目录及优先级说明的官方手册页。URL:https://manpages.debian.org/testing/systemd/resolved.conf.5.en.html
2026年10月01日
3 阅读
0 评论
0 点赞
2026-10-01
macOS私人DNS设置教程:Mac 配置DoT/DoH加密DNS
TL;DR: Mac 的「系统设置 → 网络 → DNS」里只能填普通明文 DNS IP,没有加密开关。要在 Mac 上使用 DoT(DNS over TLS)或 DoH(DNS over HTTPS),需要安装一个网络配置描述文件(.mobileconfig),或者直接装第三方应用(如 AdGuard for Mac、Cloudflare 1.1.1.1)。macOS Big Sur(11.0)及以上版本系统原生支持加密 DNS,但 Apple 没有在图形设置里暴露开关,全部走描述文件或 App。Mac 系统设置里的 DNS 只能设普通 DNS先说结论,避免你白找半天:打开「系统设置 → 网络 → 详细信息 → DNS」,你能看到的只是「DNS 服务器」列表,填的是 1.1.1.1 这类 IP 地址。这个界面没有任何加密选项——它发出去的 DNS 请求仍然是明文 UDP 53 端口,和你在路由器里设 DNS 一样。Apple 从 macOS Big Sur(11.0)开始就在系统底层支持 DoT 和 DoH,但出于设计上的考虑,Apple 没有在这个 DNS 设置面板里加一个「开启加密」的按钮。加密 DNS 的配置统一通过「描述文件(Configuration Profile)」或者「系统扩展类 App」来下发。这一点和 iPhone 类似:iPhone 的「设置 → 通用 → VPN与设备管理」里装一个 DNS 描述文件就能全局加密,Mac 也是同一套机制。关于 iPhone 的具体步骤可以参考本站的 iPhone 私人 DNS 教程。方法一:安装 DNS 描述文件(.mobileconfig)这是 Apple 官方推荐的原生方式,不需要装任何常驻 App。第一步:选一个支持加密 DNS 的服务商常见的选择:服务商DoH 地址DoT 主机名Cloudflarehttps://cloudflare-dns.com/dns-queryone.one.one.oneGooglehttps://dns.google/dns-querydns.googleQuad9https://dns.quad9.net/dns-querydns.quad9.net第二步:获取描述文件最简单的方式是直接下载服务商或社区提供的现成描述文件:Cloudflare、Google 等官方文档页会提供一键下载的 .mobileconfig 文件。也可以用开源社区维护的「encrypted-dns」项目生成自己需要的描述文件。如果你想自己写一个描述文件,它本质上是一个 XML 文件,里面用 com.apple.dnsSettings.managed payload 声明加密 DNS 参数。关键参数包括:Protocol:选 HTTPS(DoH)或 TLS(DoT),必填。ServerURL:DoH 的完整 HTTPS URL,Protocol 选 HTTPS 时必填。Hostname:DoT 模式下填服务器的主机名(用于证书校验和 SNI)。Server addresses:DNS 服务器 IP 列表(可选,但建议填)。第三步:安装描述文件双击下载好的 .mobileconfig 文件。系统会提示「此网站正在尝试下载一个配置描述文件」,点击「允许」。打开「系统设置」,往下滑找到「隐私与安全性」,拉到最下面点「描述文件」。在「已下载的描述文件」里找到你刚下载的那个,点「安装」。输入你的 Mac 登录密码确认安装。安装完成后,这个描述文件会自动全局接管 DNS。安装完不需要重启。打开浏览器随便访问一个网站,DNS 就已经走加密通道了。方法二:用第三方应用(最省心)如果你不想折腾描述文件,直接装一个带加密 DNS 功能的 Mac 应用是最快的方式。AdGuard for MacAdGuard 官方 Mac 版内置了 DoH 和 DoT 支持:从 AdGuard 官网下载 AdGuard for Mac 并安装。打开 AdGuard → 设置 → DNS。选择一个 DNS 服务器(内置了 Cloudflare、Google、Quad9 等)。协议默认就是加密的(DoH),也可以手动切到 DoT。开启后全局生效,不需要额外配置。AdGuard 的好处是它同时是广告拦截工具,装一次既能加密 DNS 又能拦广告。如果你的目标是 用私人 DNS 拦截广告,这个方案一举两得。Cloudflare 1.1.1.1 AppCloudflare 官方也有 Mac 客户端,安装后一键开启加密 DNS,非常简洁,适合只想要加密、不需要广告过滤的用户。怎么验证加密 DNS 真的生效了?方法一:用浏览器检测访问 https://1.1.1.1/help,页面会显示:-「Connected to 1.1.1.1」:Yes-「Using DNS over HTTPS (DoH)」:Yes-「Using DNS over TLS (DoT)」:视你的协议而定三项全 Yes 就说明加密已经生效。方法二:用 dig 命令行确认打开「终端」,运行:dig google.comdig 默认走的是系统解析器。如果 systemd-resolved(macOS 上是 mDNSResponder)已经接管到描述文件的加密配置,dig 返回的结果和正常一样,但底层传输已经是加密的。要更直观地看到加密流量,可以用 tcpdump 或 Wireshark 抓包:sudo tcpdump -i any port 53如果开启了 DoH/DoT,你会发现 53 端口上几乎看不到明文 DNS 查询了(因为流量走了 443 或 853 端口的加密隧道)。方法三:查看描述文件状态打开「系统设置 → 隐私与安全性 → 描述文件」,确认你的 DNS 描述文件在列表中且状态为已安装。如果描述文件被移除,DNS 会自动回退到明文。常见问题 FAQQ:我在 Mac 的网络设置里填了 1.1.1.1,为什么还是明文?A:因为 macOS 的网络设置面板只接受 IP 地址,没有加密开关。你填的 1.1.1.1 会以明文 UDP 方式发送。要加密必须装描述文件或第三方 App。Q:DoT 和 DoH 在 Mac 上选哪个好?A:两者都是 TLS 加密,安全性差不多。DoH 走 443 端口,和普通 HTTPS 流量混在一起,更不容易被网络运营商封锁;DoT 走 853 端口,有些企业网络或公共 Wi-Fi 会直接封 853。日常家用推荐 DoH,更通用。关于两种协议的详细区别,可以看本站的 DoH/DoT/DoQ 协议对比。Q:装了描述文件之后 VPN 还能用吗?A:可以,但要注意优先级。macOS 上 VPN 通常会接管全局路由,加密 DNS 描述文件一般会配合 VPN 工作。如果你同时开了 VPN 和私人 DNS,建议看一下 私人 DNS 和 VPN 冲突怎么办 这篇排查思路。Q:怎么关闭 Mac 上的加密 DNS?A:打开「系统设置 → 隐私与安全性 → 描述文件」,选中对应的 DNS 描述文件,点减号删除即可。如果是第三方 App(AdGuard 等),在 App 设置里关掉加密 DNS 开关就行。参考来源Apple Support — DNS Settings device management payload settings:支撑 macOS 加密 DNS 通过 com.apple.dnsSettings.managed 描述文件 payload 配置,Protocol 可选 HTTPS/TLS、ServerURL 为 DoH 必填项等参数定义。URL:https://support.apple.com/guide/deployment/dep86469ba99/webApple Support — Filter content for Apple devices:支撑 DNS Settings payload 用于配置 DoH/DoT、增强 DNS 隐私,以及 macOS Big Sur 及以上版本支持加密 DNS 的官方说明。URL:https://support.apple.com/guide/deployment/filter-content-dep1129ff8d2/webApple Developer — DNSSettings.DNSSettings Data Dictionary:支撑 DNSProtocol 枚举值为 HTTPS 和 TLS 的开发者文档定义。URL:https://developer.apple.com/documentation/devicemanagement/dnssettings/dnssettings-data.dictionaryApple Developer Videos — WWDC2020 Enable encrypted DNS:支撑 Apple 平台从 iOS 14/macOS Big Sur 开始原生支持 DoT 和 DoH 的官方介绍。URL:https://developer.apple.com/videos/play/wwdc2020/10047/
2026年10月01日
3 阅读
0 评论
0 点赞
1
2
3
4