Cloudflare 設定教學如果只教你點哪個按鈕,通常做完還是會卡在「為什麼網站還沒好」「為什麼 SSL 怪怪的」。這篇會把接入 Cloudflare 之後最常遇到的實際問題一起放進來,特別是 SSL 模式選擇——這是新手最容易搞錯、後果又最嚴重的設定。
你如果希望這篇不只是看完「大概知道」,而是真的能拿來安排自己的部署或排錯順序,那就把每一步都對照你現在的環境去看,效果會差很多。
你會學到什麼
- 完成 Cloudflare 基本導入流程,從註冊到啟用。
- 知道 NameServer 切換後該檢查哪些地方。
- 搞懂 SSL 模式(Off / Flexible / Full / Full Strict)的差別,選對模式。
- 設定快取規則(Page Rules / Cache Rules),讓該快取的快取、不該快取的不快取。
- 開啟安全防護功能(WAF、Bot Fight Mode、速率限制)。
- 減少 DNS 已切、網站卻還不穩的常見狀況。
什麼情況最適合先看這篇
- 想讓網站更快、更穩,並把 DNS、SSL、快取一起整理好的站長
- 你現在正要把網站接入 Cloudflare
- 你之前設定過 Cloudflare 但 SSL 一直怪怪的、網站時好時壞
- 你希望做完後不只是功能可用,連驗證與風險也一起想進去
開始前先確認
- 先準備好網域註冊商帳號與目前 DNS 紀錄(建議先截圖備份)。
- 如果網站已經上線,先用無痕模式確認目前的運作狀態。
- 確認原站本身是能正常回應的(用 IP 直接存取測試)。
- 如果你還不確定 DNS 是什麼,建議先看 DNS 基礎教學。
先提醒你一件事
CDN、DNS、Proxy 與 SSL 是互相連動的,不要一次開很多開關卻沒有逐步驗證。
詳細教學與操作步驟
為什麼選擇 Cloudflare?
Cloudflare 是全球最受歡迎的 DNS 管理與 CDN 平台之一。免費方案就包含了大多數網站需要的功能:
- 免費 DNS 託管:全球 Anycast 網路,DNS 查詢速度極快。想了解 Anycast 的原理,可以看 CDN 工作原理圖解。
- 免費 CDN:將你的網站靜態內容快取到全球邊緣節點,加速訪問。
- DDoS 防護:自動攔截惡意攻擊流量,免費方案就有。
- 免費 SSL 憑證:自動提供 HTTPS 加密,不需要額外購買憑證。
- 操作介面友善:圖形化管理面板,操作直覺簡單。
免費方案的限制主要在:沒有 WAF 自訂規則、沒有 Argo Smart Routing、沒有進階的 Load Balancing。但對中小型網站來說,免費方案已經非常夠用。
第一步:註冊 Cloudflare 帳號
- 前往 dash.cloudflare.com/sign-up。
- 輸入你的 Email 和密碼,完成帳號註冊。
- 強烈建議開啟雙重驗證(2FA):到 My Profile → Authentication → Two-Factor Authentication,用 Google Authenticator 或 Authy 掃描 QR Code。Cloudflare 帳號掌握了你的 DNS,被盜的後果非常嚴重。
第二步:新增網站到 Cloudflare
- 登入 Cloudflare 後,點選「Add a site」(新增網站)。
- 輸入你的網域名稱(例如
example.com),注意不需要加www。 - 點選「Add site」繼續。
第三步:選擇方案
- Cloudflare 會顯示多種方案,向下捲動選擇「Free」(免費方案)。
- 點選「Continue」(繼續)。
各方案差異簡表:
| 功能 | Free | Pro ($20/月) | Business ($200/月) |
|---|---|---|---|
| CDN 與 DDoS 防護 | 有 | 有 | 有 |
| WAF 自訂規則 | 基本 | 進階 | 完整 |
| 圖片最佳化 | 無 | Polish + Mirage | Polish + Mirage |
| 回源連線保護 | 無 | 無 | 有 |
| 支援等級 | 社群 | 優先 Email |
第四步:確認 DNS 記錄
這是最需要仔細的一步。
-
Cloudflare 會自動掃描你現有的 DNS 記錄並匯入。
-
仔細核對每一筆記錄,特別注意:
- A Record:指向你的主機 IP,這是最基本的。
- CNAME Record:
www通常指向example.com。 - MX Record:如果你有用自己的網域收發 Email,這個絕對不能漏。漏了 MX,信件就收不到。
- TXT Record:SPF、DKIM、DMARC 等郵件驗證記錄。如果有設定,一定要帶過來。
-
如果有遺漏,手動新增。不確定的話,回原本的 DNS 供應商後台截圖比對。
-
Proxy 狀態(雲朵圖示)的選擇:
- 橘色雲朵(Proxied):流量經過 Cloudflare,享受 CDN 和安全防護。
- 灰色雲朵(DNS Only):Cloudflare 只做 DNS 解析,流量直接到你的主機。
建議設定:
example.comA Record → 橘色雲朵wwwCNAME → 橘色雲朵- MX Record → 灰色雲朵(郵件不能走 Proxy)
mail.example.com→ 灰色雲朵ftp.example.com→ 灰色雲朵(FTP 不能走 HTTP Proxy)
-
確認無誤後,點選「Continue」。
第五步:更改 Nameserver
這是最關鍵的一步。Cloudflare 會提供兩組名稱伺服器,例如:
alice.ns.cloudflare.com
bob.ns.cloudflare.com
到你的網域註冊商更改 Nameserver:
- 登入你的網域註冊商(購買網域的地方)。
- 找到網域管理或 DNS 設定頁面。
- 將原有的 Nameserver 替換為 Cloudflare 提供的兩組。
- 只放 Cloudflare 的兩組,其他的都刪掉。不要混用。
- 儲存變更。
注意:不同註冊商的操作介面不同。如果你的網域是透過侃瑞科技註冊,請聯繫我們的技術支援協助你更改。
常見註冊商的 Nameserver 修改位置:
| 註冊商 | 路徑 |
|---|---|
| GoDaddy | My Products → DNS → Nameservers → Change |
| Namecheap | Domain List → Manage → Nameservers → Custom DNS |
| Gandi | Domain → Name Servers |
| PChome | 網域管理 → DNS 設定 → Name Server |
第六步:等待啟用
- Nameserver 變更後,需要等待全球 DNS 傳播(propagation)。
- 通常幾分鐘到幾小時,最長可能 24-48 小時(但很少見)。
- Cloudflare 會在啟用完成後寄送 Email 通知。
- 你可以用以下指令檢查 Nameserver 是否已經更新:
# 檢查 Nameserver 是否已切換
dig NS example.com
# 應該看到 Cloudflare 的 NS
;; ANSWER SECTION:
example.com. 86400 IN NS alice.ns.cloudflare.com.
example.com. 86400 IN NS bob.ns.cloudflare.com.
也可以用線上工具 whatsmydns.net 查看全球各地的 DNS 傳播狀態。
第七步:確認啟用成功
- 登入 Cloudflare Dashboard。
- 點選你的網域名稱。
- 在首頁(Overview)查看狀態是否顯示為「Active」(綠色勾勾)。
- 如果仍顯示「Pending」,請確認 Nameserver 是否已正確更改,並耐心等待。
SSL/TLS 模式選擇(重要)
這是新手最容易搞錯的設定,搞錯的後果從「網站打不開」到「安全性漏洞」都有可能。
四種 SSL 模式詳細說明:
Off:完全不加密。訪客到 Cloudflare 是 HTTP,Cloudflare 到原站也是 HTTP。現在幾乎沒有理由用這個。
Flexible:訪客到 Cloudflare 是 HTTPS(有鎖頭),但 Cloudflare 到原站是 HTTP(沒加密)。
這個模式的問題:
- 訪客看到鎖頭以為安全了,但實際上 Cloudflare 到原站這段是明文傳輸。
- 如果你的原站有設定「HTTP 自動轉 HTTPS」,就會造成 無限重導向迴圈(Redirect Loop):Cloudflare 用 HTTP 連原站 → 原站回 301 說去 HTTPS → Cloudflare 又用 HTTP 連 → 原站又回 301... 無限循環,瀏覽器顯示
ERR_TOO_MANY_REDIRECTS。 - 只建議在原站完全沒有 SSL 的「過渡期」短暫使用。
Full:兩段都是 HTTPS,但 Cloudflare 不驗證原站的 SSL 憑證是否有效。自簽憑證也接受。
Full (Strict)(推薦):兩段都是 HTTPS,而且 Cloudflare 會驗證原站的 SSL 憑證是否由受信任的 CA 簽發、是否在有效期內、網域是否匹配。
怎麼讓原站有有效的 SSL 憑證?
方法一:用 Let's Encrypt 免費憑證。如果你的主機用 cPanel,可以參考 SSL 憑證設定教學。
方法二:用 Cloudflare Origin CA。這是 Cloudflare 免費簽發的憑證,只有 Cloudflare 信任它(瀏覽器不信任),但因為你的流量一定經過 Cloudflare,所以沒問題。有效期最長 15 年,不用擔心續簽。
在 Cloudflare Dashboard → SSL/TLS → Origin Server → Create Certificate,下載 .pem 和 .key 檔案,上傳到你的主機。
設定完 SSL 後的必要檢查
-
開啟 Always Use HTTPS:SSL/TLS → Edge Certificates → Always Use HTTPS。這會把所有 HTTP 請求自動轉到 HTTPS。
-
開啟 HSTS(HTTP Strict Transport Security):SSL/TLS → Edge Certificates → HTTP Strict Transport Security。這會告訴瀏覽器「這個網域以後都用 HTTPS」,防止 SSL Stripping 攻擊。
注意:開啟 HSTS 後,如果你之後關掉 SSL,瀏覽器會拒絕用 HTTP 存取你的網站。確定長期使用 HTTPS 再開。
-
開啟 Automatic HTTPS Rewrites:SSL/TLS → Edge Certificates → Automatic HTTPS Rewrites。這會把頁面裡的
http://資源連結自動改成https://,避免 Mixed Content 警告。 -
設定最低 TLS 版本:SSL/TLS → Edge Certificates → Minimum TLS Version,設定為 TLS 1.2。TLS 1.0 和 1.1 已經不安全了。
快取規則設定
Cloudflare 新版的 Cache Rules(取代舊版 Page Rules)讓你可以更精細地控制快取行為。
基本原則:
- 靜態資源(圖片、CSS、JS):盡量快取
- 動態頁面(後台、API):不快取
- 含有使用者資料的頁面:絕對不快取
常見設定範例:
規則 1:WordPress 後台不快取
匹配條件:URI Path starts with "/wp-admin"
或:URI Path starts with "/wp-login"
動作:Bypass Cache
規則 2:靜態資源長時間快取
匹配條件:URI Path matches ".*\.(jpg|jpeg|png|gif|webp|svg|css|js|woff2|ttf)"
動作:Cache Everything
Edge TTL: 30 days
Browser TTL: 7 days
規則 3:首頁短時間快取
匹配條件:URI Path equals "/"
動作:Cache Everything
Edge TTL: 1 hour
Browser TTL: 5 minutes
注意規則的優先順序:排在前面的規則優先。所以「不快取」的規則要放在「快取」的規則前面。
安全防護設定
Cloudflare 免費方案就有不少安全功能可以開:
1. Bot Fight Mode
Security → Bots → Bot Fight Mode → 開啟。
這會自動挑戰(Challenge)被 Cloudflare 判定為惡意機器人的請求。對大多數網站來說,開啟就好。
注意:如果你的網站需要被搜尋引擎以外的 Bot 存取(例如你有 API 給第三方呼叫),開啟前要測試一下。
2. Security Level
Security → Settings → Security Level。
建議設定為「Medium」。太低(Essentially Off)沒有防護效果,太高(I'm Under Attack)會讓每個訪客都先看到一個 5 秒的挑戰頁面,影響使用者體驗。
「I'm Under Attack」模式只在你真的遭受攻擊時才開。
3. WAF(Web Application Firewall)
Security → WAF。
免費方案有 Cloudflare Managed Ruleset,會自動擋掉常見的攻擊(SQL Injection、XSS 等)。建議開啟。
4. 速率限制(Rate Limiting)
Security → WAF → Rate limiting rules。
免費方案可以設定 1 條速率限制規則。建議設定:
匹配條件:URI Path starts with "/wp-login.php"
速率:10 requests per minute per IP
動作:Block for 1 hour
這能有效防止 WordPress 登入頁面的暴力破解。
效能最佳化設定
以下設定建議在 Cloudflare 啟用後一併開啟:
1. Brotli 壓縮
Speed → Optimization → Content Optimization → Brotli → 開啟。
Brotli 比 gzip 壓縮率更高,能進一步減少傳輸量。所有現代瀏覽器都支援。
2. Early Hints
Speed → Optimization → Content Optimization → Early Hints → 開啟。
這讓 Cloudflare 在回傳 HTML 之前,先告訴瀏覽器「等一下會需要載入哪些 CSS 和 JS」,瀏覽器可以提前開始下載。
3. HTTP/2 和 HTTP/3
Speed → Optimization → Protocol Optimization。
- HTTP/2:預設開啟,多工傳輸、Header 壓縮。
- HTTP/3 (QUIC):建議開啟。基於 UDP 的新協定,在不穩定的網路環境下表現更好(例如手機 4G/5G)。
4. Auto Minify
Speed → Optimization → Content Optimization → Auto Minify。
可以選擇壓縮 HTML、CSS、JavaScript。這會移除程式碼裡的空白和註解,減少檔案大小。
注意:Auto Minify 偶爾會造成 JavaScript 錯誤。如果開啟後網站功能異常,先把 JavaScript 的壓縮關掉。
進階設定:Cloudflare 與你的主機搭配
侃瑞科技虛擬主機 + Cloudflare
如果你用的是侃瑞科技的虛擬主機方案,搭配 Cloudflare 的建議:
- SSL 模式用 Full (Strict)——我們的主機都有 SSL 憑證。
- 開啟 Cloudflare 的 CDN(橘色雲朵),讓靜態資源走 Cloudflare。
- 不需要另外設定 Cloudflare 的 SSL 憑證,用原站的就好。
侃瑞科技 VPS + Cloudflare
如果你用的是侃瑞科技的 VPS 方案:
- 在 VPS 上設定 Cloudflare Origin CA 憑證,有效期 15 年。
- SSL 模式用 Full (Strict)。
- 在 Nginx 設定裡加上 Cloudflare 的 IP 白名單,只允許 Cloudflare 的請求:
# /etc/nginx/conf.d/cloudflare.conf
# Cloudflare IPv4
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;
real_ip_header CF-Connecting-IP;
這能讓 Nginx 的 Access Log 顯示訪客的真實 IP,而不是 Cloudflare 的 IP。VPS 相關設定可以參考 Nginx + PHP 設定教學。
驗證清單:設定完後逐項確認
設定完 Cloudflare 後,按照這個清單逐項確認:
# 1. 確認 Nameserver 已切換
dig NS example.com
# 2. 確認 DNS 解析正確
dig example.com
dig www.example.com
dig mail.example.com
# 3. 確認 HTTPS 正常
curl -I https://example.com
# 看 HTTP 狀態碼,應該是 200 或 301/302
# 4. 確認 SSL 模式正確(不能有無限重導向)
curl -L -v https://example.com 2>&1 | grep "< HTTP"
# 不應該看到超過 2 次重導向
# 5. 確認 CDN 有在運作
curl -I https://example.com/style.css
# 看 cf-cache-status,應該是 HIT 或 MISS(第一次是 MISS 正常)
# 看 server,應該是 cloudflare
# 6. 確認信箱可以收發
# 寄一封測試信到你的網域信箱
特別重要:檢查信箱
很多人切換 Cloudflare 後忘了檢查信箱。如果 MX Record 沒帶過來,或者 MX 對應的 A Record 被設成 Proxied(橘色雲朵),信件就收不到。
郵件相關的 DNS 設定可以參考 Email DNS 設定教學。
做完後怎麼確認自己真的有設對
- 至少從不同網路或無痕模式測一次,確認快取與代理後的實際結果。
- 從使用者視角再跑一次實際流程,不要只看後台畫面。
- 如果你有改 DNS、Proxy、背景服務或權限,請逐層確認,不要一次判斷全部成功。
- 用 SSL Labs 測試 SSL 評分,目標 A 或 A+。
- 用 GTmetrix 測試開啟 Cloudflare 前後的速度差異。
- 確認所有子網域都正常運作,不要只看主網域。
這一題最常踩的坑
- Cloudflare 掃到的 DNS 沒仔細核對就直接切。漏了 MX Record 導致信件全部收不到,這種事每個月都有人踩。
- 切換後只看首頁,沒檢查信箱或其他子網域。
- SSL 模式選 Flexible,但原站有 SSL 且有 HTTP→HTTPS 重導向,造成無限迴圈。這是 Cloudflare 新手的頭號殺手。
- 開了 Proxy(橘色雲朵)之後,原站的防火牆把 Cloudflare 的 IP 擋掉,結果網站時好時壞。
- 忘了把 MX 和 Mail 的 A Record 設成灰色雲朵(DNS Only),郵件走了 Proxy 就收不到。
- 開啟 WAF 或 Bot Fight Mode 之後沒測試 API,結果第三方服務的請求被擋掉。
- 快取規則沒排除後台頁面,WordPress 後台被快取,登入狀態錯亂。
Troubleshooting:常見問題排除
Q:切換後網站顯示 ERR_TOO_MANY_REDIRECTS(無限重導向)? 99% 是 SSL 模式的問題。到 SSL/TLS → Overview,把模式改成 Full 或 Full (Strict)。如果原站沒有 SSL,就先用 Flexible,但要盡快幫原站設定 SSL。
Q:切換後網站顯示 522 Connection Timed Out? 原站的防火牆擋了 Cloudflare 的 IP。把 Cloudflare 的 IP 範圍 加到防火牆白名單。
Q:切換後信件收不到?
檢查 MX Record 有沒有帶過來,以及 MX 指向的主機名稱(例如 mail.example.com)的 A Record 是不是灰色雲朵。
Q:網站變慢了?
開啟 CDN 不一定會變快。如果你的原站在台灣、訪客也在台灣,多繞一圈 Cloudflare 反而可能變慢。檢查 cf-ray Header 看請求是從哪個節點回應的。如果是從遠方的節點回應,可能是 Anycast 路由的問題。
Q:Cloudflare 顯示「This site can't provide a secure connection」? 原站的 SSL 憑證有問題(過期、網域不匹配、自簽)。把 SSL 模式先降到 Full(不驗證憑證),然後修好原站的 SSL。
Q:開了 Bot Fight Mode 之後,某些服務不能用了? Bot Fight Mode 可能會擋掉合法的 Bot。如果你有需要被 Bot 存取的路徑(例如 API),到 WAF → Custom Rules 設定例外。
如果你要往下一步走
如果切換後出現 DNS 問題,可以看 DNS 問題排除教學。想了解 CDN 快取的運作原理,看 CDN 工作原理圖解。CDN 的基本概念複習可以看 CDN 基礎教學。如果你要讓網站直接套用這些做法,可以搭配侃瑞的主機方案或 VPS 方案。