1 - DNS 入門:網際網路的地址簿

DNS 是什麼?

歡迎來到我們的 DNS 系列文章!在我們深入探討技術細節之前,讓我們先從一個簡單的問題開始:什麼是 DNS?

想像一下,你的手機通訊錄。你不需要記住每個朋友的電話號碼,只需要記住他們的名字。當你想要打電話給朋友「張三」時,你只需在通訊錄裡找到他的名字,然後點擊撥號。你的手機會自動查找「張三」對應的電話號碼並撥打出去。

DNS(Domain Name System,網域名稱系統) 就扮演著類似「網際網路通訊錄」的角色。它負責將我們容易記憶的網站域名(比如 www.google.com)「翻譯」成電腦能夠理解的 IP 位址(比如 172.217.160.78)。沒有 DNS,我們就必須記住一長串毫無規律的數字才能存取網站,這幾乎是不可能的。

DNS 如何運作?

這個「翻譯」過程通常在幕後飛快地完成。當你在瀏覽器中輸入一個網址時,大致會發生以下幾個步驟:

  1. 請求:你的電腦或手機會向一個 DNS 解析器(Resolver)送出請求:「www.example.com 的 IP 位址是什麼?」
  2. 查詢:DNS 解析器會像一個偵探一樣,透過層層查詢(從根伺服器到頂級域名伺服器,再到權威域名伺服器)來找到答案。
  3. 回應:一旦找到,解析器就會將 IP 位址回傳給你的電腦。
  4. 連線:你的瀏覽器使用這個 IP 位址與網站的伺服器建立連線,最終將網頁內容呈現在你面前。

本系列我們將探討什麼?

DNS 的世界遠比這個簡單的比喻要豐富和複雜。在本系列文章中,我們將帶你深入了解 DNS 的方方面面,包括:

  • 核心概念:深入理解域名、IP 位址、以及它們之間的關係。
  • 記錄類型:學習 A 記錄、CNAME 記錄、MX 記錄等不同 DNS 記錄的用途。
  • 伺服器類型:了解遞迴伺服器和權威伺服器等不同角色的 DNS 伺服器。
  • DNS 查詢過程:詳細拆解一次完整的 DNS 查詢是如何進行的。
  • DNS 快取:探索 DNS 快取如何提高網站存取速度。
  • 私有 DNS:如何架設和使用私有 DNS 服務來增強網路安全和隱私。

无论你是剛剛接觸網路知識的新手,還是希望鞏固基礎知識的開發者,本系列都將為你提供清晰、易懂的指引。

讓我們開始 DNS 的探索之旅吧!

2 - 公共服務

首先需要說明,一些家庭網路在簽訂服務協議時,協議規定禁止商用。實際執行中,並不管是否商用,當入站 http/https 連線較多(有人說是 250 個)時,會降級服務,這帶來很多網路影響。因此,如果要提供給大眾瀏覽的服務,需要視為商用服務,最好租一個雲端服務商的 VPS 來提供公共服務。

3 - 裝置

這裡討論可以使用哪些裝置承載家用服務.

硬體平台

家庭用裝置有很多選擇, 可以找一台退役的筆記型電腦, 或者閒置的桌上型電腦, 或者在電商搜開發板, NAS, 軟路由, Mac 等, 這些都可以承載服務.

硬體的選擇上, 不用太拘泥於x86平台, ARM平台已經成熟, 價格便宜, 效能足夠, 能耗低, 且生態豐富, 適合家庭使用, 如果沒有必須運行遠古軟體的需求, ARM平台是不錯的選擇.

蘋果裝置上裝 Windows/Linux, 或者非蘋果裝置安裝黑蘋果系統, 黑群暉系統等, 都需要花一些時間去研究, 適合有一定技術基礎, 愛折騰的使用者. 但老實講, 沒必要.

裝置選擇參考指標

  • CPU: 考慮功耗/效能比
  • 記憶體: 至少 4GB 起跳
  • 儲存: 考慮冗餘和擴充性
  • 網路: 千兆網卡基本需求
  • 散熱: 24/7 執行需要可靠散熱
  • 噪音: 放置位置決定噪音要求

作業系統

生態最好, 工具軟體最多的是Linux, 命令列對一些使用者來說是更簡單的操作方式, Linux 上很方便實現自動化, 適合有一定操作基礎的使用者. Linux 下可以選擇的系統有很多, 非專業使用者可以考慮 Ubuntu 桌面版. 還可以選擇黑群暉系統, 但遇到問題需要自己尋找解決辦法.

Windows 系統有最廣泛的使用人群, 絕大多數人的需求在 Windows 上的 IIS(Internet Information Services)中就可以滿足, 只需要動動滑鼠就可以實現足夠多的功能.
Windows 的安裝參考massgrave.dev.

蘋果的 ARM CPU 做的很好, Mac Mini 成為一個有性價比的硬體選擇, 但是 macOS 系統需要介面和命令列交替使用, 既不能完全脫離介面, 也不能完全脫離命令列, 適合有一定技術基礎的使用者.

系統選擇建議

  • 新手入門: Windows + Docker Desktop
  • 進階使用者: Ubuntu Server/Debian
  • 穩定性要求高: RHEL/Rocky Linux
  • 特定需求:
    • 媒體伺服器: unRAID
    • 儲存導向: TrueNAS
    • 全功能 NAS: 群暉 DSM

推薦的裝置和系統

專業使用者的需求五花八門, 非專業使用者的需求總結起來就是一個 NAS, 電商搜 NAS, 按需購買即可.

如果想省錢, 家裡有閒置的裝置, 或者閒魚上低價收到的便宜主機, 可以安裝 Windows Server 2022/2025, 折騰黑群暉等.

資料安全

硬碟損壞

硬碟損壞一開始只是偶爾讀不出來, 等到完全讀不出來時再去資料救援, 一是可能救援的價格貴, 二是部分硬碟商家沒有能力救援.
因此推薦購買一個硬碟陣列櫃, 組一個磁碟陣列, 假如硬碟的 5 年損壞率為 10%, 雙盤陣列的損壞率就是 1%, 只要它們不是同時損壞, 就可以通過更換陣列中損壞的硬碟來保證資料不遺失.

資料被盜

如果硬碟被盜, 而所有資料全部未加密, 那就會後患無窮, 特別是隱私資料如機密文件, 密碼備份等. 推薦磁碟都開啟加密, 以防止硬碟被盜後帶來更多損失.
開啟加密會帶來一部分系統資源佔用, 計算資源敏感的使用者可以考慮不開啟加密, 但是要注意硬碟的安全.

多處備份

家裡的硬碟不是絕對安全, 進賊進小孩, 地震洪水, 網路勒索入侵等可能遺失資料, 因此推薦多處備份, 找一個靠譜的雲服務, 備份重要資料.

網路安全

不要輕易暴露直連 IP

有的網路設定可以讓一些裝置獲得獨立公網 IPv6, 這些 IPv6 可以被用於埠掃描. 掃到埠後, 一些服務可能存在漏洞, 被攻擊者利用.
因此除非有明確的需求, 建議家庭網的 IPv6 設定為 NAT6, 做一層位址轉換, 防止直連 IP 被掃描. 需要向外暴露服務的話, 可以設定一台 DMZ 主機. 只是自用的話, 考慮 wireguard/tailscale/zerotier/cloudflare 搭建 VPN, 通過 VPN 訪問家裡的服務.

不要隨便安裝軟體

不管是大眾的還是小眾的, 軟體都可能存在漏洞, 關注軟體的更新, 有漏洞及時更新, 不用的軟體及時解除安裝. 不輕易給軟體高權限.

使用防火牆

關閉防火牆一時爽, 直到被攻破的那一天. 有條件的話稍微研究下規則的配置, 不要輕易的一關了事.

使用安全軟體

有一些安全軟體是免費的, 防護能力多少是有一點的, 比不裝要好.

安全性建議總結

  • 網路隔離: VLAN 分區
  • 訪問控制: 反向代理+認證
  • 監控告警: 硬體狀態監測
  • 備份策略: 3-2-1 原則
    • 3 份備份
    • 2 種媒體
    • 1 份異地

4 - 設備的分類

  • 設備的分類

網路上流行的 NAS、軟路由、Mac mini、路由器等皆統一抽象為「設備」,不必在意它們的名稱與外觀,主要應聚焦在處理器儲存網路應用生態這四個面向。

處理器首先要看的是架構,一般常見的是x86ARM;其他架構若非專業人士不建議購買,貧乏的生態會增加學習與使用的難度。

你會看到有人評價ARM通常用於低功耗設備、適合家用,x86通常用於高效能設備、適合企業。但在本文撰寫的 2024 年,這種說法早已過時,我們仍應以生態作為考量;目前ARM生態已相當成熟,且性價比更高,值得認真考慮。非專業人士可直接選擇ARM架構的設備,以阿里雲為例,ARM設備的價格僅為x86的一半,而其效能亦能滿足家用需求。專業人士可依自身需求選擇x86架構設備。