對多數團隊而言,DNS 往往在建站完成後就被「封存」:能開站、能收發信就好。但在實務維運裡,DNS 是所有服務的入口。

可用性(Uptime)、延遲(Latency)、郵件送達率(Deliverability)、安全(Security)、甚至 換機房 / 佈署 CDN / 雲端多區切換 的可控性,全都繫於你的 DNS 架構與紀錄策略是否健全。設定不當,輕則抓不到新 IP、郵件被當垃圾信,重則整站解析中斷、SSL 憑證續期失敗、搜尋引擎抓取連續錯誤。這篇文章不是新手導覽,而是寫給需要對 DNS 做正確決策、能落地實作的網管與網站維運人員。
如果你還不熟悉 DNS 的基本概念,可以先看我之前寫的 👉《DNS 是傳送記點,沒設定好誰都傳送不到你家!》
DNS 架構與運作原理解析
DNS(Domain Name System)是網際網路的分散式階層式命名系統,其核心功能是將人類可讀的網域名稱(如 example.com
)解析為機器可理解的 IP 位址(如 192.0.2.1
或 2001:db8::1
),並反向解析 IP 位址至對應的網域名稱。
整個系統的運作類似一棵倒置的樹,由 根伺服器(Root Server) 位於頂層,往下分為 頂級網域(TLD, Top-Level Domain)伺服器、權威 DNS 伺服器(Authoritative DNS Server),最後才到達儲存實際解析紀錄的區域檔案(Zone File)。
一次完整的 DNS 查詢過程,通常經歷以下步驟:
- 使用者端請求:瀏覽器或應用程式輸入網址後,會先檢查本地快取(OS 或瀏覽器快取)是否有解析紀錄。
- 遞迴解析器(Recursive Resolver)查詢:若本地沒有,請求會送往 ISP 或指定的 DNS 遞迴解析器,例如 Google Public DNS(8.8.8.8)。
- 逐層查詢:遞迴解析器會依序詢問根伺服器 → TLD 伺服器(如
.com
) → 權威伺服器,直到獲得最終的 IP 位址。 - 回傳並快取:解析器將結果回傳給使用者端,並依據 TTL(Time to Live)設定將結果暫存,以減少後續查詢延遲。
這種階層式設計不僅提高了全球 DNS 系統的可用性與容錯性,也確保了網站名稱解析的穩定與一致性。對網管人員來說,理解這個流程是設定與排查 DNS 問題的基礎,因為任何一層節點出錯,都可能導致整個網站無法被正確訪問。
常見 DNS 記錄類型與進階應用
DNS 的威力來自於它的彈性。不同的記錄類型可以為網站、郵件、驗證與安全等服務建立對應的路由,讓每項網路功能都能正確運作。以下是網管人員日常最常接觸的記錄類型與其進階應用場景說明。
A 與 AAAA:將網域導向實體主機 IP
A 記錄是最基本的 DNS 記錄,負責把網域名稱解析到對應的 IPv4 位址。例如:
@ IN A 192.0.2.10
www IN A 192.0.2.10
若你有多台主機提供同一服務(如負載均衡),可以設定多個 A 記錄,讓 DNS 輪流返回不同位址(Round-robin),不過此方式無健康檢查功能,建議搭配負載平衡器或 CDN。
AAAA 記錄則是 IPv6 版本,語法與用途與 A 記錄相同:
@ IN AAAA 2001:db8::10
若網站支援雙協定,建議同時設定 A 與 AAAA 記錄,以提高全球連線效率與兼容性。
CNAME:建立別名的轉址記錄
CNAME(Canonical Name)讓一個子網域指向另一個網域,常用於讓 www.example.com
導向 example.com
,或讓子網域掛載第三方服務(如 GitHub Pages、CDN):
www IN CNAME example.com.
assets IN CNAME cdn.provider.net.
▲ 注意:根網域不能設 CNAME,因為權威 DNS 規範禁止 @ IN CNAME
,這會與 NS、SOA 等必要記錄衝突。若你有 root domain 指向需求(如使用 CDN),請查 DNS 提供商是否支援 ALIAS 或 ANAME 機制。
MX:郵件伺服器指向與送信順序
若你要啟用郵件功能(如企業信箱),必須設定 MX 記錄,格式如下:
@ IN MX 10 mail.example.com.
@ IN MX 20 backup-mail.example.com.
數字代表優先順序,數字越小優先級越高。建議設定 1~2 組備援郵件伺服器,並確保該主機的 A 記錄也設定正確。
📌 延伸設定(不可忽略):
- SPF:設定發信主機名單。
- DKIM:郵件簽章驗證。
- DMARC:告訴收件伺服器出問題該怎麼處理郵件(拒收、隔離或通過)。
這三項會透過 TXT 記錄補上,會在下方說明。
TXT:附加資訊與驗證用途的萬用欄位
TXT 記錄用途廣泛,最常見的用途如下:
1. SPF(寄件者政策框架):
@ IN TXT "v=spf1 include:_spf.google.com ~all"
2. DKIM(DomainKeys Identified Mail):
google._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...QIDAQAB"
說明:這是 Google Workspace 自動產生的 DKIM 公鑰,驗證信件來源。
3. DMARC(寄件人認證機制):
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-report@example.com"
說明:若 SPF 或 DKIM 驗證失敗,則進行隔離(quarantine)。
DNS 伺服器架構規劃與最佳實務

你可能不會自己搭建 BIND 伺服器或寫 zone file,但作為網站維運人員,你一定會面對 DNS 提供商的選擇與設定流程,而這背後牽涉到一些「架構決策」,會影響網站的可用性、效能、以及容錯能力。
Primary / Secondary 架構:讓你的 DNS 有備援、不中斷
DNS 的基本容錯架構是 主從式設計(Primary / Secondary),也稱為 Master / Slave(傳統術語):
- Primary DNS(主要伺服器):你真正修改記錄的地方(主控權)。
- Secondary DNS(次要伺服器):從 Primary 定期同步 Zone 資料,用於備援。
為什麼這很重要?因為 Googlebot、Email Server、訪客請求,不見得都會查詢同一台 DNS。如果你只有單一主機做 DNS,就等於網站解析這條路是「單線通車」。一但主機掛了、雲服務斷線、或 DNS 資料同步出錯,整站會「看得到網址、打不開網站」,最慘甚至連 Mail 也收不到。
實務建議
- 即使使用 DNS 託管服務,也要問清楚是否有備援機制,並查看是否有 多個 NS 記錄。
- 使用像 Cloudflare、AWS Route53、Gandi Premium DNS 等服務時,它們會自動提供全球部署的多台伺服器,幫你實現備援效果。
DNS Anycast 架構:全球用戶都能快速解析你的網站
當網站流量來自全球(例如:國際電商、跨國品牌、App 或 SaaS 服務),單靠一台 DNS 伺服器,會導致跨區延遲、封包遺失等問題。此時,建議選用支援 Anycast 技術的 DNS 提供商。
Anycast 是一種網路路由技術,允許全球多個伺服器同時使用同一個 IP,讓使用者自動連到「就近的節點」。例如:你設在美國、歐洲、台灣三台 DNS,使用者會自動命中最近的機房,提高穩定度與速度。
實務建議
- 選擇 DNS Hosting 時,確認是否支援 Anycast(多數主流如 Cloudflare、AWS、Google Cloud DNS、DNSPod 都支援)。
- 若是小型網站,沒必要刻意追求 Anycast,但 至少選有雙節點或分區備援的服務。
多家 DNS Hosting 的切換與佈署策略
有些企業為了彈性,會將 DNS 與網址註冊商分離,例如:
- 網址註冊在 Gandi,但 DNS 託管在 Cloudflare。
- 或是移轉主機到新的服務商,卻忘記變更 DNS 指向。
這時就需要懂得「授權委派」與 NS 記錄 的切換原理:
- 註冊商的後台會顯示「目前使用哪些 DNS 主機」(NS 記錄)。
- 當你想換到新的 DNS Hosting(例如從 GoDaddy 換到 Cloudflare),需要去 Registrar 後台更新 NS 記錄。
- 切換時建議將 TTL 降到較短(例如 300 秒),等完成後再拉回來,避免延遲太長。
實務建議
- DNS 切換作業建議預留 24 小時以上緩衝期。
- 切換後記得確認 SPF/DKIM/DMARC 等 TXT 紀錄是否有正確搬移!
你的網站該選哪種 DNS 架構?
使用情境 | 建議方案 |
---|---|
個人網站 / 小型部落格 | 使用註冊商內建 DNS 即可(如 Gandi、Namecheap),不必額外付費 |
中小企業網站(流量穩定) | 使用 Cloudflare、AWS Route53 等具備備援與 CDN 整合能力的 DNS |
須有 SLA 保證 / 商業網站 | 尋找提供 DNS Analytics、DNS Failover、TTL 管理的 DNS 託管服務 |
全球化架構 / App 後端服務 | 使用 Anycast DNS 結合自動擴展的雲服務(Cloudflare、Google Cloud DNS) |
這一段的目標是讓你 即使不懂架構設計,也能問對問題、選對 DNS 託管商、避免失誤。
DNS 安全性與權限控管
DNS 是網站的「門牌系統」,一旦遭到竄改或假冒,不只是網站開不了、郵件收不到,更可能成為駭客攻擊、釣魚詐騙、甚至 SSL 憑證被非法簽發的跳板。本段會說明 DNS 安全的幾個高風險環節,以及實務上能落地的防護策略。
DNSSEC 是什麼?啟用前你必須搞懂的風險與責任
DNSSEC(Domain Name System Security Extensions)是一種用來防止 DNS 資料在查詢過程中被竄改的加密驗證技術。
它的運作方式是在 DNS 回應中加入簽章(RRSIG),搭配公開金鑰(DNSKEY),讓遞迴解析器可以驗證該筆資料是否真的來自權威伺服器、是否未被竄改。
問題來了:不是打開就好
DNSSEC 比 SSL 複雜太多,需要:
- DNS 提供商與註冊商雙方都支援 DNSSEC
- 維護 KSK(Key Signing Key)與 ZSK(Zone Signing Key) 的輪替與同步
- 將 DS(Delegation Signer)紀錄正確地交給頂層(例如
.tw
或.com
的 TLD)
一旦設定錯誤、Key 過期、DS 未更新,就會導致整個網域 DNS 查詢失敗,比沒開還慘!
實務建議
- 一般中小企業網站不建議自行啟用 DNSSEC,若主機商代管,可交由其全權管理。
- 若使用 Cloudflare,DNSSEC 設定相對簡單、安全性可接受,建議開啟。
- 啟用後要建立金鑰輪替 SOP,並指定維運負責人。

快取汙染與 DNS 欺騙:防範內部與外部風險
DNS Cache Poisoning(快取汙染)是指駭客向遞迴解析器注入錯誤的回應,使查詢者拿到錯誤的 IP。這可能會導致:
- 訪客被導向釣魚網站
- 郵件送到假冒的收件伺服器
- 自家服務被導向惡意主機
防範重點
- 使用信任的遞迴解析器(如 Google 8.8.8.8、Cloudflare 1.1.1.1)取代 ISP 預設 DNS
- 啟用 DNSSEC(從來源就驗證)
- 啟用伺服器快取保護與 ACL(Access Control List)限制查詢對象
- 公司內部 DNS 可強制轉送(forwarding),集中控制來源
DNS 記錄管理權限:不是誰都能改的!
很多團隊把 DNS 記錄設定視為小事,結果以下錯誤狀況屢見不鮮:
- 工程師誤刪 TXT 記錄,導致郵件驗證失效
- 廠商幫你建站順手修改 DNS,卻忘記記錄變更
- 新人誤改 NS 記錄,把整個網站從 Google 上消失
建議作法
- DNS Hosting 應支援多層帳號權限(例如只讀帳號、限子網域操作)
- 重大修改前,導入內部 Ticket / 審批流程(簡單如表單簽核也行)
- 定期匯出 Zone 備份,保留異動前版本
- 啟用變更記錄(Change Log)與 Email 通知功能,誰動過、什麼時候一目了然
小心 TXT/SPF 記錄被覆蓋,網站可用但郵件全壞
實務上最常見的 DNS 安全漏洞,不是被攻擊,而是 自己不小心「覆蓋掉原本的 TXT 紀錄」。尤其是:
- 啟用第三方信件服務(如 Mailchimp、Zoho Mail)時,照說明加了一組 SPF,卻沒合併原本那組,導致只剩新服務的發信權限。
- 多人維護網站,Google 驗證、Facebook Domain Verify、其他系統設定混雜在一起,一不小心刪錯就無法驗證。
實務建議
- 對所有 TXT 紀錄(尤其 SPF)採用「合併策略」:用空格分隔,每個 include/指令都保留。
- 所有 TXT 紀錄應使用備份紀錄(Versioning)方式管理,每次修改前都要備份。
效能最佳化與故障排除流程
DNS 雖然只是「把網址指到主機」的系統,但它的查詢速度與穩定性,會直接影響網站首屏載入時間、Googlebot 抓取體驗、甚至電子報開信率。這一段,我們將聚焦在兩個主題:效能最佳化策略與常見 DNS 錯誤的排查方法。
TTL 設定:不是越短越好,也不是設死不動
TTL(Time to Live)指的是每筆 DNS 紀錄快取的時間(以秒為單位)。太短會讓解析器不斷查詢、加重負載;太長則在更換 IP 或服務時產生殘留舊紀錄的延遲問題。
常見 TTL 建議值:
紀錄類型 | 建議 TTL | 原因與情境 |
---|---|---|
A / AAAA | 300 ~ 3600 秒 | 一般網站建議 5 分鐘~1 小時,可平衡變更與效能 |
MX / TXT | 3600 ~ 86400 秒 | 郵件相關變化不頻繁,設長一點提升穩定性 |
CNAME | 600 秒起跳 | 若用於第三方服務(如 CDN),不宜設太短 |
切換前(如搬主機) | 調整至 60 ~ 300 秒 | 提前 1 天將 TTL 調短,切換完成後調回 |
操作提示:
- 不要預設值都設 86400(24hr),你未來可能會後悔。
- 若使用 Cloudflare,請注意其 DNS 本身有快取機制,TTL 與代理狀態會一起影響行為。
CDN 整合時的 DNS 考量
使用 CDN(如 Cloudflare、Quic.Cloud、Akamai)時,通常會將 DNS CNAME 指向 CDN 的加速節點。但你需要注意:
- CNAME Flattening / ALIAS 機制:大多數 CDN 會要求你把 root domain(如
example.com
)也指向他們,但 CNAME 不能用在根網域。因此,DNS 提供商必須支援「CNAME Flattening」或 ALIAS 機制。Cloudflare、Gandi、Route53 等都支援。 - NS 與 DNS Host 切換需搭配 CDN 設定同時調整,否則會發生「DNS 看起來正確,但頁面打不開」的問題。
- 啟用 CDN 的 Proxy 機能時,DNS 回應的 IP 是 CDN,不是原始伺服器 IP。有時候這會導致某些驗證服務(如 API 驗證、SSL 憑證確認)失敗,需使用「DNS only」模式暫時繞過。
DNS 故障排查流程(含指令)
當網站「打不開」時,以下是最常見的 DNS 問題來源與對應排查方式:
問題現象 | 可能原因 | 排查方式(指令) |
---|---|---|
網址輸入後無反應 | DNS 沒解析成功 | ping example.com 、nslookup example.com |
開啟很慢或偶爾失敗 | TTL 太短、遞迴解析失效 | 檢查 TTL、換用 8.8.8.8 試試看 |
CDN 已設定但無效 | CNAME 設錯、Proxy 未啟用 | 登入 CDN 管理台確認 DNS 狀態 |
收不到信 | MX、SPF、DKIM、DMARC 記錄錯誤或漏設 | 、查看 G Suite / Microsoft 驗證狀態 |
SSL 憑證續期失敗 | DNS 驗證 TXT 記錄未設定或延遲 |
|
建立你的 DNS 檢查習慣清單(維運自救包)
項目 | 建議頻率 | 工具 |
---|---|---|
Zone 記錄是否正確完整 | 每月檢查一次 | DNS Hosting 管理台、dig |
NS 是否有異動 | 每季檢查 | whois 、註冊商通知信 |
SPF/DKIM 是否正常 | 每次新增郵件服務時 | Google Admin Toolbox、mail-tester.com |
DNS 傳播狀況 | 每次搬遷、切換 | https://dnschecker.org |
備份 zone file | 每次異動前 | DNS Hosting 匯出、BIND zone 檔案 |
你的網站跑得穩不穩,從 DNS 就決定了一半
DNS 並不是冷冰冰的技術細節,而是一道網站進入世界的門。它的設計不會每天出錯,但一旦出錯,影響範圍廣、診斷困難、損失實質。因此,與其發生問題後手忙腳亂,不如現在就建立正確的 DNS 維運觀念與設定習慣,讓你的網站無論升級、搬遷、改版、攻擊都能穩穩在線。
DNS 只是網站基礎的一環
真正讓網站跑得快、被搜尋引擎喜歡、能帶來客戶的,不只是 DNS。
如果你正在規劃新網站或 SEO 內容策略,這才是我們最擅長的領域。
📚 參考資料來源
※ 我的實務經驗主要在網站與中小企業常見的 DNS 維運,例如基本解析、郵件驗證、CDN 部署等。
若涉及較大型系統,會有不同規格與做法。
如果內容有不夠精確的地方,歡迎前輩們提醒,請溫柔指教我 😅