1127 字
6 分鐘
[Day4] DNS 代管 — 30 天入門 Cloudflare
2023-05-03
無標籤

DNS 代管是 Cloudflare 所有功能的起點,如果你的網域沒有開啟 Proxy 設定,則無法受到 Cloudflare 的操作與保護。今天就來說明一下 Cloudflare DNS 是什麼,以及和坊間其他 DNS 服務(如 Godaddy、Gandi)有什麼差別。


關於 Cloudflare DNS#

Cloudflare DNS 是一種域名解析服務,可以將網站的域名轉換成 IP 地址,讓瀏覽器能夠正確地造訪網站。如果對於 DNS 原理不太熟悉,可以先看看官方說名

Cloudflare DNS 的特點是速度快、安全可靠,可以有效地提高網站的造訪速度和安全性,而使用 Cloudflare DNS 有以下優點:

  1. 快速:Cloudflare 的全球分佈式 DNS 網路能夠提供快速的解析服務,讓網站能夠更快地載入。
  2. 安全:Cloudflare 的 DNS 服務支援 DNS over HTTPS(DoH)和 DNS over TLS(DoT),能夠加密 DNS 查詢,保護使用者的隱私和安全。
  3. 可靠:Cloudflare 的 DNS 網路具有高可用性和容錯能力,能夠有效減少 DNS 解析的故障時間。尤其自行維護 DNS 伺服器容易成為攻擊目標,將DNS 交給 Cloudflare 可降低風險。

設置 Cloudflare DNS 很簡單,只需要在 Cloudflare 的控制面板中新增 DNS 紀錄即可。下面是具體的步驟:

  1. 登錄 Cloudflare 帳戶,進入Dashboard。
  2. 點擊「DNS」,進入 DNS 設置頁面。
  3. 點擊「新增記錄」按鈕,選擇要新增的 DNS 記錄類型(如 A、CNAME、MX 等)。
  4. 填寫相應的 DNS 記錄資訊,包括主機名稱、IP 地址等,並選擇要不要使用 Proxy。
  5. 點擊「儲存」按鈕,完成 DNS 設置。


關於 Proxy#

與坊間其他 DNS 服務不同的地方在於,Cloudflare DNS 有 Proxy 功能,這邊的 Proxy 指的是反向代理 (Reverse Proxy),關於反向代理的介紹可以看看官方文件。簡單來說,就是進來到網域的流量,都會先經過 Cloudflare 伺服器,再反向代理到你的主機。

以下說明,如果開啟 Proxy 的話會有哪些優點:

  • 負載平衡:傳統上我們會仰賴地端或是雲端的 Load Balancer,避免伺服器異常,開啟 Proxy 可以在 Cloudflare 做負載平衡。
  • 防止攻擊:由於我們的伺服器不是使用者接觸的第一線,可以由Cloudflare 幫忙抵擋如 DDOS 的攻擊,也可以開啟 WAF 做防護。
  • 快取:Cloudflare 會協助快取靜態資源,降低後端伺服器壓力。
  • 隱藏 IP:當開啟 Proxy 後會發現,網域的 DNS 解析出來的 IP 都會是Cloudflare IP,可以隱藏伺服器實際的 IP。
  • SSL 加密:將 SSL 憑證放到 Cloudflare 上進行統一管理
  • HTTPS 封包修改:由於網路流量都會經過 Cloudflare,也在 Cloudflare 上做 SSL 的加解密,因此可以修改任意 HTTPS 封包的 header 與 body。

簡單來說,網域需要開啟 Proxy 才能享受到 Cloudflare 防護、修改等功能;否則就只是普通的 DNS,網路流量都不會經過 Cloudflare。

反向代理說明,擷取自 https://www.cloudflare.com/zh-tw/learning/cdn/glossary/reverse-proxy/

反向代理說明,擷取自 https://www.cloudflare.com/zh-tw/learning/cdn/glossary/reverse-proxy/

那該如何評估什麼網域要開啟 Proxy,簡單來說,如果你這個網域只有網頁服務 (https、http) 就可以開;若這個網域包含其他對外 TCP 服務(smtp、 imap、mysql、MX 伺服器等)就不要開,否則服務會無法連線,原因為Proxy 預設只服務網頁流量,若是要支援其他 TCP、UDP,則要另外購買 Cloudflare Spectrum。


Proxy 的 IP 與 Port#

所有相同和網域解析出來的 Proxy IP 會是同一組,如 a.example.com、b.example.com 解析出來的 IP 會相同,可以透過 nslookup 找到自己網域的 IP。

由於 Proxy 只支援 HTTP 的功能,但我的伺服器上有其他 Port 也是網頁該怎麼辦?其實 Cloudflare Proxy 也是支援多個不同的 Port,只是除了 80、443 以外都不會被 Cache,更多資訊請看官方文件

Proxy Ports:

  • http: 80, 8080, 2052, 2082, 2086, 2095
  • https: 443, 2053, 2083, 2087, 2096, 8443

DNS 的其他設定#

到 Dashboard 的 DNS 可以開啟 DNSSEC、CNAME 展平功能,加強防護與提升解析速度。


結語#

我們需要開啟 Cloudflare DNS 的P roxy,才能有後續防護與後面即將介紹的更進階功能,但開啟後也會導致只能對外有 HTTP 的流量,不過基本上基於安全性,我們也應該只對外開放 HTTP 流量就好。

▶ 閱讀更多本系列文:30 天入門 Cloudflare

▶ 下一篇:[Day5] SSL/TLS — 30 天入門 Cloudflare