這是本節的多頁可列印檢視。 按此列印.

返回此頁面的常規檢視.

基礎教程

透過生動的比喻了解網絡基礎知識

📚 閱讀指引

為了讓網絡知識更容易理解,本教程將使用大量來自日常生活的比喻和類比。 我們的目標是讓每個人都能輕鬆掌握網絡基礎知識,無論是否有技術背景。 雖然這些比喻可能不夠嚴謹,但它們將幫助您快速建立對網絡概念的基本認知。

網絡基礎知識介紹

在本教程中,我們將透過生動的比喻和類比來解釋網絡基礎知識。我們的目標是讓每個人都能輕鬆掌握這些概念,無論是否有技術背景。雖然這些比喻可能不夠嚴謹,但它們將幫助您快速建立對網絡概念的基本認知。

不同於嚴謹的專業名詞,本段將使用大量的通俗表述,以便非專業人士能理解網絡基礎的概念。

我們將使用大量的恰當或不恰當的比喻和類比,目的是讓讀者能夠快速理解網絡基礎的概念。

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提供了豐富的功能和靈活的配置選項,滿足不同用戶的需求。