🏅自建DNS服务器理论篇:国内外域名分流、防DNS泄露和网络加速原理讲清楚

💡
导语:想象你的所有上网行为在 GFW 视角下都「合理」、DNS 查询不再泄露、网速还有明显提升——这就是自建 DNS + 分流解析的目标。本集是理论篇,用拓扑图讲清楚原理;动手部署请看配套的实践篇。本文按视频逻辑整理成可检索的图文版。

开场 — 理论篇 + 实践篇两集拆分

开场 — 理论篇 + 实践篇两集拆分

1. DNS 基础与家庭网络拓扑

DNS 就像互联网的电话簿:把 baidu.com 这样的域名翻译成 201.x.x.x 这样的 IP 地址。DNS 服务器两大作用:

  • 解析域名:域名 → IP
  • 缓存结果:常用域名不必每次都向上游查询

普通家庭网络结构(视频中的 Router A / Router B 模型):

设备 角色 默认 DNS
Router A(光猫/主路由) ISP 提供,连接互联网 运营商 DNS
Router B(家用 WiFi 路由) 手机/电脑接入 转发到 Router A
PC / 手机 发起域名查询 通常用 Router B 下发的 DNS
普通家庭网络拓扑 — Router A / Router B

普通家庭网络拓扑 — Router A / Router B

⚠️

避坑指南:默认走 ISP DNS = 所有查询行为都被运营商记录,也是 DNS 泄露的根源之一。

2. 一次完整的 DNS 解析流程

以访问 www.baidu.com 为例,完整链路如下:

PC 浏览器输入 baidu.com
  → Router B 转发 DNS 请求
    → Router A 转发到 ISP DNS
      → ISP DNS 返回 201.1.1.1
        → 回传给 PC
PC 拿到 IP 后,再向 201.1.1.1 发 HTTP 请求
  → Router B → Router A → 百度服务器
    → 返回网页内容
DNS 解析完整流程 — 从域名到 IP 再到网页

DNS 解析完整流程 — 从域名到 IP 再到网页

关键点:DNS 查询和数据访问是两次独立请求。先解析域名,再访问 IP。

3. GFW DNS 污染原理

当 DNS 返回错误 IP(如把 Google 解析成 9.9.9.9 而非真实地址 107.x.x.x),浏览器无论如何也访问不到目标服务器——这就是 DNS 污染

GFW DNS 污染 — 返回错误 IP 导致无法访问

GFW DNS 污染 — 返回错误 IP 导致无法访问

域名 真实 IP 被污染后返回 结果
baidu.com 201.1.1.1 201.1.1.1 ✅ 正常
google.com 107.3.3.3 9.9.9.9 ❌ 无法访问

GFW 对特定域名限制时,不管用户怎么访问,DNS 都返回错误 IP,从而实现封锁。

DNS 污染原理 — GFW 体系拦截与篡改

DNS 污染原理 — GFW 体系拦截与篡改

4. DNS 泄露:查询行为也会暴露

即使你不翻墙,只要 PC 向 ISP DNS 发起 google.com 的查询,查询行为本身就会被记录——这就是 DNS 泄露

  • DNS 污染:返回错误 IP,导致访问失败
  • DNS 泄露:查询行为被 ISP/GFW 记录,暴露你的访问意图

正确做法:自建 DNS 的第一目标:把 DNS 查询从 ISP 手里拿回来,由你自己控制解析路径。

5. 自建 DNS 后的拓扑变化

核心改造:在家庭内部搭建 DNS 服务器,Router A 不再转发到 ISP DNS,而是转发到自建 DNS

PC → Router B → Router A → 自建 DNS(家里)
                              ↓
                         返回正确 IP
自建 DNS 拓扑 — 解析权收归家庭

自建 DNS 拓扑 — 解析权收归家庭

好处:国内域名(如 baidu.com)可以稳定返回正确 IP,解析速度也更快(本地缓存)。

⚠️

避坑指南:自建 DNS 只解决「解析正确」——拿到正确 IP 后,GFW 仍可能做 IP 层阻断。

6. 正确 IP 仍不够 — VPN 全链路

即使自建 DNS 返回了 Google 的正确 IP 107.3.3.3,PC 向该 IP 发数据请求时,GFW 仍可能直接阻断(返回 500 或连接超时)。

正确 IP 仍可能被 GFW 阻断

正确 IP 仍可能被 GFW 阻断

完整方案需要 VPN/梯子 + 自建 DNS 配合:

PC 查询 google.com → 自建 DNS 返回 107.3.3.3
PC 访问 107.3.3.3 → 软路由识别为国外 IP
  → 封装加密数据包 → 海外 VPS(101.6.6.6)
    → VPS 代发请求到 Google → 返回数据
      → 加密回传 → PC 呈现 Google 首页
VPN + 自建 DNS — 解析与传输全链路

VPN + 自建 DNS — 解析与传输全链路

正确做法:DNS 负责「找对地址」,VPN 负责「安全到达」。两者缺一不可。

7. 国内外域名分流解析

不可能缓存全球所有 DNS 记录,所以需要上游 DNS 分流

域名类型 示例 上游 DNS 目的
国内域名 baidu.com, taobao.com 阿里/腾讯/运营商 DNS 速度快、稳定
被墙域名 google.com, youtube.com 海外 DNS(Google/Cloudflare) 避免污染、拿正确 IP
国内外域名分流 — 不同域名走不同上游

国内外域名分流 — 不同域名走不同上游

在 GFW 视角下:访问淘宝走国内 DNS(正常行为);访问 Google 走加密隧道(行为不可见)。

8. SmartDNS + AdGuard Home 双系统

视频作者(Money哥)的实际方案:

所有 DNS 请求
  → AdGuard Home(广告过滤 + 第一道解析)
    → SmartDNS(并发测速 + 分流解析)
      → 国内上游 / 海外上游
组件 角色 核心能力
AdGuard Home 「全能门卫」 DNS 解析 + 广告/恶意域名拦截 + 图形界面
SmartDNS 「智能翻译官」 并发查询多上游 + 测速选最快 + 国内外分流
AdGuard Home + SmartDNS 双系统架构

AdGuard Home + SmartDNS 双系统架构

AdGuard Home 过滤广告域名;SmartDNS 负责并发测速和选择最优上游——两者优势互补。

9. 域名列表与日常维护

分流依赖两张域名列表,通过脚本定期从 GitHub 公开数据源更新:

  • 中国大陆域名列表:走国内 DNS(通常每 2–3 天更新)
  • GFW 被墙域名列表:走海外 DNS + 加密隧道
域名列表 — 定时任务自动更新

域名列表 — 定时任务自动更新

正确做法:用 cron/计划任务定期拉取最新列表,系统可长期稳定运行,无需手动维护。

FAQ

Q1:理论篇和实践篇有什么区别?
A:理论篇(本集)讲拓扑和原理;实践篇讲 AdGuard Home + SmartDNS 的具体安装配置。见 实践篇教程

Q2:只自建 DNS 不搭 VPN 有用吗?
A:对国内网站加速和广告过滤有用;访问被墙网站仍需 VPN 配合。

Q3:DNS 污染和 DNS 泄露是一回事吗?
A:不是。污染是返回错误 IP;泄露是查询行为被第三方(ISP/GFW)记录。

Q4:SmartDNS 和 AdGuard Home 必须一起用吗?
A:不是必须,但组合效果最好:AdGuard 管过滤,SmartDNS 管测速分流。

Q5:需要什么硬件?
A:一台常开的设备即可——旧 PC、树莓派、或 VPS 上的 Docker 容器。

Q6:域名列表从哪来?
A:GitHub 上有活跃维护的中国大陆域名列表和被墙域名列表,用脚本定期同步。

结语

自建 DNS 的核心逻辑:解析权收归自己 → 国内外分流 → 配合 VPN 实现全链路加密。搞懂这套拓扑后,部署就是按图施工。

结语 — 原理搞懂,实践篇按图施工

结语 — 原理搞懂,实践篇按图施工

📺 完整视频: YouTube 理论篇(36 分钟)

📚 下一步: 实践篇 — AdGuard Home + SmartDNS 部署教程 · 致新同学信