这是本节的多页可打印视图。 点击此处打印.

返回此页面的常规视图.

基础教程

通过生动的比喻了解网络基础知识

📚 阅读指引

为了让网络知识更容易理解,本教程将使用大量来自日常生活的比喻和类比。 我们的目标是让每个人都能轻松掌握网络基础知识,无论是否有技术背景。 虽然这些比喻可能不够严谨,但它们将帮助您快速建立对网络概念的基本认知。

网络基础知识介绍

在本教程中,我们将通过生动的比喻和类比来解释网络基础知识。我们的目标是让每个人都能轻松掌握这些概念,无论是否有技术背景。虽然这些比喻可能不够严谨,但它们将帮助您快速建立对网络概念的基本认知。

不同于严谨的专业名词,本段将使用大量的通俗表述,以便非专业人士能理解网络基础的概念。

我们将使用大量的恰当或不恰当的比喻和类比,目的是让读者能够快速理解网络基础的概念。

1 - DNS是什么

DNS(域名系统)是互联网的基础设施之一,本文介绍DNS的基本概念和工作原理

本质上,DNS服务就是一本新华字典, 通过查询字典,我们可以找到域名对应的IP地址。

DNS简介

DNS(Domain Name System,域名系统)是互联网的基础设施之一,就像一本新华字典,负责将人类易读的域名转换为计算机可理解的IP地址。

DNS解析原理

DNS的工作原理

当你在浏览器中输入一个网址时:

  1. 浏览器首先检查本地缓存
  2. 若未找到,向DNS服务器发起查询
  3. DNS服务器返回对应的IP地址
  4. 浏览器使用该IP地址访问目标网站

重要概念

  • 域名(Domain Name): 网站的可读地址,如 www.nullprivate.com
  • URL(统一资源定位符): 完整的网址,包含协议、域名和路径,如 https://www.nullprivate.com
  • IP地址: 网络设备的数字标识,如 1.1.1.1
  • DNS服务器: 提供域名解析服务的计算机
  • 网站托管: 将网站文件存储在服务器上,使其能够通过互联网访问

2 - NullPrivate基本原理

通过DNS层面的拦截,NullPrivate能有效阻止广告、追踪器和恶意网站

工作原理概述

NullPrivate通过DNS层面的拦截来保护您的网络安全和隐私。它就像一个智能守门人,对所有域名请求进行筛查:

  • ✅ 安全网站:正常访问
  • ❌ 广告域名:拦截
  • ❌ 追踪器:拦截
  • ❌ 恶意网站:拦截

拦截流程图解

NullPrivate拦截基本原理

主要特点

  1. DNS级别拦截:在请求发生前就进行拦截,更高效
  2. 无需安装插件:网络层面的保护,对所有设备都有效
  3. 低资源消耗:只处理DNS请求,对设备性能影响极小
  4. 全设备覆盖:一次配置,保护所有接入设备

3 - DNS 会如何影响你的上网体验

DNS 是几乎所有联网请求的入口,解析一次域名往往只需几十毫秒,但这几十毫秒决定了后续连接将指向哪台服务器、是否命中就近的 CDN 节点、是否会被运营商劫持或被某些中间节点观察。本文面向普通网民,用连续叙述解释 DNS 与上网体验的关系。

DNS 会如何影响你的上网体验

当我们打开一个网页、刷一条视频或点击一条应用内链接时,第一跳几乎总会落在 DNS 上。它像一份网络世界的电话簿,负责把人类友好的域名翻译成机器能理解的 IP 地址。很多人把"网页慢、打不开、时好时坏"归因于"网速差",其实相当一部分体验波动与 DNS 的解析成功率、耗时、缓存命中与隐私策略相关。理解 DNS 如何工作、它在链路中的暴露点与可选的保护策略,能帮助我们把"慢与不稳"拆解为可控的因素。

背景与问题概述

DNS 是几乎所有联网请求的入口。解析一次域名往往只需几十毫秒,但这几十毫秒决定了后续连接将指向哪台服务器、是否命中就近的 CDN 节点、是否会被运营商劫持或被某些中间节点观察。家庭、蜂窝网络与公共 Wi‑Fi 的体验差异,也常常来自不同解析器的缓存质量、丢包率与策略差异。本文面向普通网民,用连续叙述解释 DNS 与上网体验的关系,重点放在原理与取舍,而不是具体的部署步骤或评测结论。

基础与术语梳理

浏览器或应用发起解析请求后,通常先询问系统的本地解析器,再由递归解析器逐层向根、顶级域与权威服务器查询,最终得到一条带有 TTL 的答案。本地或网络侧的缓存若命中,可省去外部查询,大幅降低时延;若缓存未命中或过期,则需要完成完整的递归流程。下图用一个简化流程呈现解析的来回路径,动画仅用来强调数据流动而非表示真实耗时顺序。

flowchart TB
  C[客户端] e1@--> L[本地解析器]
  L e2@--> R[递归解析器]
  R e3@--> Root[根服务器]
  Root e3r@--> R
  R e4@--> TLD[TLD 服务器]
  TLD e4r@--> R
  R e5@--> Auth[权威服务器]
  Auth e5r@--> R
  R e6@--> L
  L e7@--> C

  %% 填充色设置
  style C fill:#e1f5fe,stroke:#01579b,stroke-width:2px
  style L fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
  style R fill:#fff3e0,stroke:#e65100,stroke-width:2px
  style Root fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
  style TLD fill:#fce4ec,stroke:#880e4f,stroke-width:2px
  style Auth fill:#e0f2f1,stroke:#004d40,stroke-width:2px

  %% 动画节奏设置(Mermaid v11)
  e1@{ animation: fast }
  e2@{ animation: slow }
  e3@{ animation: slow }
  e3r@{ animation: slow }
  e4@{ animation: slow }
  e4r@{ animation: slow }
  e5@{ animation: fast }
  e5r@{ animation: fast }
  e6@{ animation: slow }
  e7@{ animation: fast }

TTL 是每条记录的“保质期”。在 TTL 有效期内,递归解析器可以直接把缓存答案返回给客户端,这对体感“快与稳”的贡献往往超过我们直觉的估计。另一方面,解析器如何处理 IPv4 与 IPv6 记录的并行请求、是否启用 ECS 扩展、是否对失败查询做负缓存,也会间接影响你的连接指向与首包时间。

隐私威胁与动机

传统明文 DNS 在链路上暴露了“你要访问哪个域名”的元数据。这些信息会在本地网络、接入运营商与公共解析器处留下痕迹,即便内容走的是加密的 HTTPS。对于普通用户,风险更多来自“被动观测与建模”而不是直接内容泄露:长期的查询序列足以推断出你的兴趣、生活作息与所用设备类型。公共 Wi‑Fi、共享热点与境外漫游等场景,链路上可观测者更多,波动与失败也更常见。

flowchart TB
  C[客户端] e1@--> Net[本地网络与路由器]
  Net e2@--> ISP[接入运营商网络]
  ISP e3@--> Res[公共递归解析器]
  Res e4@--> Auth[权威服务器]

  %% 填充色设置
  style C fill:#e1f5fe,stroke:#01579b,stroke-width:2px
  style Net fill:#ffe8e8,stroke:#cc0000,stroke-width:2px
  style ISP fill:#ffe8e8,stroke:#cc0000,stroke-width:2px
  style Res fill:#ffe8e8,stroke:#cc0000,stroke-width:2px
  style Auth fill:#ffe8e8,stroke:#cc0000,stroke-width:2px

  %% 暴露点高亮
  classDef risk fill:#ffe8e8,stroke:#cc0000,stroke-width:2px,color:#000
  class Net,ISP,Res,Auth risk

  %% 动画
  e1@{ animation: fast }
  e2@{ animation: slow }
  e3@{ animation: slow }
  e4@{ animation: fast }

需要强调的是,隐私保护并不必然等于“更快”。加密与封装会引入握手与协商,优质的递归解析器通过更好的缓存命中与更低的丢包反而可能更快。现实世界的体验好坏,取决于所处网络、解析器质量与目标站点的部署方式三者的共同作用。

保护策略与原理

加密 DNS 把“你要问什么域名”包裹进加密隧道,降低被窃听与篡改的机会。常见方式包括基于 TLS 的 DoT、基于 HTTPS 的 DoH 与基于 QUIC 的 DoQ。它们都复用成熟的传输层安全机制,差异更多体现在端口与复用模型上。无论采用哪种方式,客户端通常仍会先向本地解析栈发起查询,再由加密隧道把请求送至上游解析器,下图用顺序图示意这一封装与返回。

flowchart LR
  U[客户端] e1@--> S[DoH 栈]
  S e2@--> R[DoH 服务器]
  R e3@-->|200 OK + DNS 响应| S
  S e4@--> U

  %% 填充色设置
  style U fill:#e1f5fe,stroke:#01579b,stroke-width:2px
  style S fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
  style R fill:#fff3e0,stroke:#e65100,stroke-width:2px

  e1@{ animation: fast }
  e2@{ animation: slow }
  e3@{ animation: fast }
  e4@{ animation: fast }

除了加密,解析器侧的 QNAME 最小化可以减少向上游暴露的查询粒度,DNSSEC 提供记录完整性校验,ECS 控制影响 CDN 的就近性与命中率。对于终端用户而言,实际可感知的是“是否更稳定”“是否更容易命中就近节点”“是否更少被劫持”。

实现路径与注意事项

从用户角度出发,系统和路由器常常内置了解析器或转发器,很多公共服务在移动系统与浏览器层面也提供了内建的 DoH 开关。选择可信的递归解析器与恰当的加密方式,往往已经覆盖了绝大多数需求。需要注意的是,部分企业或校园网络对加密 DNS 有策略限制,特定安全产品也可能拦截或重定向 DNS 流量;在这些环境中,优先保证连通与合规,再考虑隐私与性能。对海外站点访问的体验,解析器的地理策略与 CDN 的接入布局同样重要,错误的就近策略会把你导向跨洲节点,体感“慢半拍”。

风险与迁移

任何切换都值得保留回退路径。对个人设备,先在单设备上启用加密 DNS 并观察一周,关注异常多发的应用与站点;对家庭网关,建议灰度到少量设备,必要时保留备用解析器并开启健康检查。若网络有内网域或分离 DNS,切换前确认解析范围与搜索域的兼容性,避免引入解析失败与意外泄露。

场景化建议

在蜂窝网络与公共 Wi‑Fi 中,优先选择稳定的公共解析器并开启 DoH 或 DoT,常能同时获得更稳与更洁净的解析。在家庭宽带中,更重要的是缓存命中与少丢包,优质公共解析器或本地网关缓存都能带来“点开就有”的顺滑感。跨境访问时,解析器的地域策略决定了你会被导向哪里,遇到某些站点“能连但很慢”,不妨更换解析器或关闭 ECS 再试。对需要家长控制与分流的家庭,选择具备分类策略与日志透明度的解析器更实际。

FAQ 与参考

常见疑问包括“加密 DNS 是否一定更快”“为何不同解析器返回的 IP 不同”“切换解析器会不会影响安全软件工作”。这些问题没有放之四海而皆准的唯一答案,它们取决于链路质量、解析器实现与站点接入策略。进一步阅读可参考 IETF 的相关 RFC、主流浏览器与操作系统文档,以及可信的网络基础设施博客。

4 - 在家搭建

详细教程教您如何在家搭建NullPrivate网络广告拦截服务

在家搭建NullPrivate

NullPrivate是一个基于AdGuardHome的增强版本,专为提供更好的网络广告拦截和隐私保护功能而设计。本教程将指导您如何在家搭建和配置NullPrivate服务。

项目简介

NullPrivateAdGuardHome的开源分支版本,提供了SaaS托管服务和丰富的增强功能,旨在为用户提供更好的DNS解析和网络过滤体验。

主要功能

原始功能

  • 网络级广告拦截:在整个网络范围内拦截广告和跟踪器
  • 自定义过滤规则:支持添加个人化的过滤规则
  • 加密DNS支持:支持DNS-over-HTTPS、DNS-over-TLS和DNSCrypt
  • 内置DHCP服务器:开箱即用的DHCP服务功能
  • 客户端独立配置:为每个设备定制专门的设置
  • 防沉迷:拦截成人内容并强制安全搜索
  • 跨平台兼容性:支持Linux、macOS、Windows等操作系统
  • 隐私保护:不收集使用统计信息

NullPrivate新增功能

  • DNS路由规则列表:使用配置文件中的规则列表自定义DNS路由
  • 应用级拦截规则:针对特定应用的源进行拦截配置
  • 动态DNS(DDNS):提供动态域名解析功能
  • 高级速率限制:实现高效的流量管理和控制
  • 增强部署特性:支持负载均衡、自动证书维护、优化网络连接

安装方式

方法一:下载二进制文件

  1. 访问Releases页面下载适合您操作系统的二进制文件
  2. 创建工作目录:
    mkdir -p ./data
    
  3. 运行NullPrivate:
    ./NullPrivate -c ./AdGuardHome.yaml -w ./data --web-addr 0.0.0.0:34020 --local-frontend --no-check-update --verbose
    

方法二:使用Docker

推荐使用Docker方式部署,更简单且易于管理:

docker run --rm --name NullPrivate \
  -p 34020:80 \
  -v ./data/container/work:/opt/adguardhome/work \
  -v ./data/container/conf:/opt/adguardhome/conf \
  nullprivate/nullprivate:latest

支持的平台

  • ✅ Windows
  • ✅ macOS
  • ✅ Linux
  • ✅ Docker
  • ✅ 其他类Unix系统

配置说明

基本配置

启动后,访问Web界面进行初始配置:

  • 默认管理地址:http://localhost:34020
  • 首次运行需要设置管理员账户
  • 可以导入现有的AdGuardHome配置

配置文件

主要配置文件为AdGuardHome.yaml,包含:

  • DNS服务器设置
  • 过滤规则配置
  • 客户端配置
  • 安全设置

启动参数说明

参数说明
-c指定配置文件路径
-w指定工作目录
--web-addrWeb管理界面地址和端口
--local-frontend使用本地前端界面
--no-check-update禁用自动更新检查
--verbose启用详细日志输出

使用建议

  1. 网络配置:将路由器的DNS服务器设置为NullPrivate的IP地址
  2. 规则更新:定期更新过滤规则以获得最佳拦截效果
  3. 性能监控:通过Web界面监控DNS查询统计信息
  4. 安全加固:启用HTTPS并设置强密码
  5. 备份配置:定期备份配置文件和数据

故障排除

常见问题

  • 端口占用:确保34020端口未被其他服务使用
  • 权限问题:Linux环境下可能需要适当的文件权限
  • 启动失败:检查配置文件路径和工作目录是否存在

获取帮助

结语

通过本教程,您应该已经成功在家搭建了NullPrivate服务。现在您可以享受清净的网络环境,同时保护个人隐私。NullPrivate提供了丰富的功能和灵活的配置选项,满足不同用户的需求。