Cloudflare網域設定教學(DNS代管與API Token申請)

前言

你是否遇過網站被攻擊、連線速度慢,或是想要一張免費的 SSL 憑證卻不知從何下手?把網域交給 Cloudflare 代管,這些問題大多可以一次解決。

Cloudflare 的免費方案就提供了全球 CDN 加速、免費 SSL 憑證、基本 DDoS 防護與相當快速的 DNS 服務,對個人網站或中小型網站來說已經非常夠用。這篇會從新增網域開始,一路帶你完成名稱伺服器的更換,最後再建立一組權限受限的 API Token,讓 DDNS 或自動化腳本可以安全地操作你的 DNS。

事前準備

開始之前,請先準備好以下三樣東西:

  • 一組 Cloudflare 帳號,免費註冊即可
  • 網域註冊商後台的帳號密碼,例如 GoDaddy、Namecheap、PChome 或中華電信 HiNet,因為稍後要去那裡更換名稱伺服器
  • 目前 DNS 記錄的完整清單,尤其是 A、CNAME、MX 與 TXT 記錄

第三項最重要。整個流程中最容易出事的地方,就是 DNS 記錄沒有搬乾淨,導致網站或郵件在切換後無法運作。建議先把原本的記錄逐筆抄下來或截圖存檔。

將網域新增到 Cloudflare

登入 Cloudflare 帳戶首頁

登入後會看到「Let’s get to work.」的帳戶首頁,中間是搜尋列,下方會列出目前管理中的 Domains、Workers 以及最近瀏覽的項目。

Cloudflare 登入後的帳戶首頁畫面

進入網域頁面並點選新增網域

點選左側選單的「網域」,再點「概覽」,這裡會列出所有已加入的網域、狀態與使用中的方案。確認之後,點畫面右上角的【新增網域】。

Cloudflare 網域概覽頁面與右上角的新增網域按鈕

選擇連接網域

「新增站點」會提供三個選項,請依照你的情況選擇:

  • 連接網域:網域仍然留在原本的註冊商,只把 DNS 交給 Cloudflare 代管,大多數人選這個
  • 轉移網域:把網域的註冊整個搬到 Cloudflare,包含日後的續約
  • 購買網域:直接在 Cloudflare 註冊一個全新的網域

這裡選最上面的「連接網域」。

Cloudflare 新增站點的連接網域、轉移網域與購買網域三個選項

輸入網域名稱與 AI 爬蟲政策

在「網域名稱」欄位填入你的網域。請直接填根網域,不要加上 http:// 或 www,例如 yourdomainhere.com。

下方的「其他設定」是近年新增的 AI 訓練與搜尋政策,可以依需求調整:

  • 搜尋:讓 Google 等搜尋引擎的機器人爬取你的網站,請保持「允許(不封鎖)」,否則會影響 SEO
  • 代理:AI 助理即時抓取網頁內容來回答使用者問題,維持允許通常有利於曝光
  • 訓練:爬蟲抓取內容用於訓練 AI 模型,預設是「在含廣告的頁面上封鎖」,若不希望內容被拿去訓練可以改成完全封鎖
  • 匯入 DNS 記錄:保持「自動」,讓 Cloudflare 自動掃描並匯入你現有的記錄

設定完成後點右下角的【繼續】。

Cloudflare 連接您的網域頁面輸入網域名稱與 AI 訓練搜尋政策

選取方案(選擇免費即可)

接著會出現方案選擇頁。個人網站、部落格或中小型網站選「免費」就非常夠用,已經包含通用 SSL 憑證、全球 CDN 加速與快取、快速的 DNS 代管、無限流量與基本的 DDoS 防護。

請點最左邊「免費」欄位下方的【選取方案】。

Cloudflare 免費、Pro、Business 與 Enterprise 四種方案的比較頁面

注意:Pro 方案的按鈕是藍色實心,在視覺上最醒目,很多人第一次操作都在這裡按錯而被收費。免費方案的按鈕是白底藍框的那一顆,請看清楚再點。

檢閱掃描到的 DNS 記錄

Cloudflare 會自動掃描你目前的 DNS 記錄並列出來。這一步務必逐筆核對,因為自動掃描並不保證抓得完整。

畫面上方的橘色提示也講得很清楚:掃描可能會遺漏不常見的記錄或自訂子網域。請自行與原本的 DNS 供應商清單比對,特別留意以下三類:

  • A、AAAA 與 CNAME 記錄:包含根網域、www,以及各種子網域,例如 mail、smtp、blog
  • MX 記錄:郵件收信用,漏掉會直接收不到信
  • TXT 記錄:SPF、DKIM、DMARC 與 MTA-STS 等驗證記錄

Cloudflare 檢閱您的 DNS 記錄頁面與掃描遺漏的橘色提示

頁面往下捲,可以看到「通過 Proxy 處理」的說明與記錄列表,確認無誤之後點左下角的【繼續以啟用】。

Cloudflare DNS 記錄列表底部的繼續以啟用按鈕

說明:這裡的橘色雲朵與灰色雲朵差別很大。

  • 橘色雲朵(通過 Proxy 處理):流量會經過 Cloudflare,可以隱藏你的真實主機 IP,並享有 CDN 快取、WAF 與 DDoS 防護。網站的 A 與 CNAME 記錄建議開啟
  • 灰色雲朵(僅 DNS):只做 DNS 解析,流量直接連到你的主機。MX 收信以及 mail、smtp 等郵件相關記錄一定要用灰色雲朵,開了橘色雲朵會導致收發信失敗

如果你的網域目前沒有任何 DNS 記錄,會跳出「稍後新增記錄」的確認視窗,提醒你沒有 DNS 記錄 Cloudflare 就無法啟用網站。若確定要先跳過,點【確認】;否則點【取消】回去補齊記錄。

Cloudflare 稍後新增記錄的確認對話框

更換名稱伺服器(最關鍵的一步)

取得 Cloudflare 指派的名稱伺服器

接下來會看到「更新名稱伺服器以啟動 Cloudflare」。Cloudflare 會指派兩台專屬的名稱伺服器給你,格式類似 albert.ns.cloudflare.com 與 emma.ns.cloudflare.com。欄位右側有複製按鈕可以直接點。

注意:每個帳號拿到的名字都不一樣,可能是 kate、rick、dana 等各種人名。請務必複製你自己畫面上顯示的那兩組,不要照抄本文的範例。

Cloudflare 更新名稱伺服器頁面顯示指派的兩組 ns.cloudflare.com

查詢目前使用的名稱伺服器

如果你不確定網域現在的 DNS 託管在哪一家,可以開啟命令提示字元查詢:


nslookup -q=ns yourdomain.com.tw

在命令提示字元使用 nslookup 查詢網域的名稱伺服器

以台灣常見的情況為例,如果查出來是 admns1.hinet.net 與 admns2.hinet.net,代表你的 DNS 由中華電信 HiNet 代管,就要登入 HiNet 的網域管理後台去修改。

另一個方法是點 Cloudflare 頁面上的「ICANN Lookup」連結,它會告訴你這個網域是在哪一家註冊商註冊的。如果你是透過經銷商購買的網域,要登入的是該經銷商的帳戶,而不是上游註冊商。

到註冊商後台更換名稱伺服器

登入你的網域註冊商或 DNS 供應商後台,依序完成四個動作:

  • 找到「名稱伺服器」或「Name Server」的設定區段
  • 新增 Cloudflare 給你的那兩組,例如 albert.ns.cloudflare.com 與 emma.ns.cloudflare.com
  • 刪除原本所有的名稱伺服器,例如 admns1.hinet.net 與 admns2.hinet.net
  • 儲存變更

關閉 DNSSEC 與其他建議設定

Cloudflare 頁面下方的「推薦」區塊有兩項建議,第一項尤其重要。

Cloudflare 推薦關閉 DNSSEC 與僅允許 Cloudflare IP 的設定說明

  • 確保 DNSSEC 已關閉:到原註冊商找到 DNS 安全性(DNSSEC)設定並關閉。沒有關閉會導致網域解析整個失效,等 Cloudflare 啟用完成之後,可以再從 Cloudflare 這邊重新開啟
  • 僅允許 Cloudflare 的 IP 連入原點:在主機或虛擬主機控制台的防火牆設定中,只放行 Cloudflare 的 IP 區段,避免有人繞過 Cloudflare 直接攻擊你的伺服器。這一步可以等網站運作正常之後再做

回到 Cloudflare 完成驗證

改完之後回到剛才的頁面,點藍色的【我已更新我的名稱伺服器】,Cloudflare 就會開始檢查。

名稱伺服器的變更通常在幾分鐘到數小時內生效,最長可能需要 24 到 48 小時,實際時間視 TLD 與原註冊商而定。這段期間網站仍然可以正常運作,狀態變成「使用中」就代表完成,Cloudflare 也會寄 Email 通知你。

檢查與補齊 DNS 記錄

網域啟用之後,從左側選單進入「DNS」再點「記錄」,這裡就是日後管理所有 DNS 的地方。免費方案每個網域可以建立 200 筆記錄。

Cloudflare DNS 記錄管理頁面顯示 A、MX 與 TXT 記錄

畫面上的「建議」區塊會提示你缺少哪些記錄。例如出現「訪客無法存取 www.example.com」,就代表還沒有幫 www 建立 A 或 CNAME 記錄。一般網站常見的必備記錄如下:

類型 名稱 內容範例 Proxy 狀態 用途
A @ 你的主機 IP 橘色雲朵 網站主機
CNAME www yourdomain.com 橘色雲朵 www 導向
A mail 郵件主機 IP 灰色雲朵 郵件主機
MX @ mail.yourdomain.com 不適用 收信
TXT @ v=spf1 a:mail.… ~all 不適用 SPF 防偽造
TXT _dmarc v=DMARC1; p=quarantine 不適用 DMARC 政策
TXT xxx._domainkey v=DKIM1; h=sha256; k=… 不適用 DKIM 簽章

注意:郵件相關的記錄千萬不要開橘色雲朵。MX 指向的主機,例如 mail 或 smtp,一定要維持灰色雲朵的「僅 DNS」。Cloudflare 的 Proxy 只處理 HTTP 與 HTTPS 流量,郵件走的 SMTP 通訊埠不會通過,開了橘色雲朵會直接讓你收發信失敗。

建立 API Token

API Token 可以讓外部程式、或是你委託的服務商代替你操作 Cloudflare,而不需要交出帳號密碼。常見的用途包含以 DNS 驗證方式申請與續期 SSL 憑證、DDNS 動態更新 IP、WordPress 外掛清除快取,或是 Terraform 之類的基礎設施工具。

把 Token 交給服務商是很常見的做法。重點在於權限要切到最小:只授權單一網域、只給必要的權限,這樣即使外洩,對方能碰到的也只有那一個網域的 DNS 記錄。下面的步驟就是照這個原則走。

進入設定檔的 API 權杖頁面

點畫面右上角的個人頭像,選擇「設定檔」。

Cloudflare 右上角個人頭像展開的設定檔選單

在左側選單選「API 權杖」,可以看到現有的 Token 清單,包含權限、資源、上次使用時間與啟用狀態。點右上角的【建立 Token】。

Cloudflare 使用者 API 權杖頁面的 Token 清單與 API 金鑰區塊

注意:頁面下方的 Global API Key 擁有你帳號的全部權限,一旦外洩等同帳號被接管,請不要拿來給程式使用。另外 Origin CA 金鑰已經被棄用,官方建議改用帳戶或使用者 API 權杖。

選擇「編輯區域 DNS」範本

Cloudflare 提供多種預設範本,直接套用最省事。以最常見的 DDNS 或 DNS 自動化為例,找到「編輯區域 DNS」,點右邊的【使用範本】。

點選編輯區域 DNS 範本右側的使用範本按鈕

說明:其他幾個常用範本的適用情境。

  • 編輯區域 DNS:以 DNS-01 方式驗證網域來申請與續期 SSL 憑證、DDNS 動態更新,或自動新增與修改 DNS 記錄
  • WordPress:WordPress 官方外掛整合,例如清除快取
  • 編輯 Cloudflare Workers:部署 Workers 或 Pages 專案
  • 查看分析與記錄:只能讀取流量統計,不能修改任何設定
  • 建立自訂 Token:需要多組權限組合時,從零開始自己設定

設定權限與區域資源

套用範本之後會進入「建立 Token」設定頁,各欄位說明如下:

  • Token 名稱:預設是「編輯區域 DNS」,建議點旁邊的鉛筆圖示改成好辨識的名稱,例如「DDNS-家用路由器」或「憑證代辦-服務商名稱」,日後才知道哪一組 Token 給了誰
  • 權限:範本已經自動帶入「區域 / DNS / 編輯」,不需要更動。如果只需要讀取,把「編輯」改成「讀取」即可
  • 區域資源:預設是「包含 / 特定區域 / Select…」,點開最右邊的下拉選單,手動選擇要授權的網域

注意:「區域資源」請一律選「包含」加上「特定區域」,再指定單一網域,不要選「所有區域」。這樣即使 Token 外洩,影響範圍也只限於那一個網域。

限制來源 IP 與有效期限(選用)

再往下還有兩個可選的加強設定,建議依情況啟用:

  • 客戶端 IP 位址篩選:運算子選「包含於」,填入允許使用這組 Token 的 IP。這裡要填的是實際拿這組 Token 去呼叫 API 的那台機器。如果是你自己的固定 IP 伺服器要用,點右邊的【使用我的 IP】就能帶入目前連線的位址;如果是要交給服務商代為操作,請填對方伺服器的 IP,填成自己的反而會讓對方無法使用。家用浮動 IP 則不要設定,IP 一變動 Token 就失效了
  • TTL 有效時限:設定 Start Date 與 End Date,Token 到期會自動失效。臨時性的委託,或是交給第三方使用的 Token,一定要設定期限

以上設定都在同一個畫面上,完成後如下圖。

Cloudflare 建立 Token 頁面的權限、區域資源、客戶端 IP 位址篩選與 TTL 設定

建立並保存 Token

捲到頁面最下方,點【繼續以顯示摘要】,確認權限摘要無誤之後,再點【建立 Token】。

注意:這串 Token 只會顯示這一次。建立完成後請立刻按複製,並存到密碼管理工具或其他安全的地方。關掉頁面之後就再也看不到了,只能重新產生一組。

建立完成後,可以用下面的指令測試 Token 是否有效,把「你的TOKEN」換成實際的字串:


curl -H "Authorization: Bearer 你的TOKEN" https://api.cloudflare.com/client/v4/user/tokens/verify

回傳的內容中如果看到 “status”: “active”,就代表這組 Token 正常可用。

常見問題

改了名稱伺服器,網站會斷線嗎

只要你在 Cloudflare 的 DNS 記錄和原本完全一致,就不會斷線。切換期間會有部分使用者走舊的 DNS、部分走新的 DNS,但兩邊都指向同一台主機,所以感受不到差異。這也是為什麼「先核對好 DNS 記錄,再更換名稱伺服器」的順序這麼重要。

狀態一直停在擱置中怎麼辦

  • 確認註冊商那邊兩組名稱伺服器都填了,而且舊的已經完全刪除
  • 確認 DNSSEC 已經在註冊商端關閉,這是最常見的卡關原因
  • 用 nslookup 確認查到的已經是 ns.cloudflare.com
  • 如果以上都沒問題,就是還沒生效,最長可能需要 24 到 48 小時

換到 Cloudflare 之後收不到信

幾乎都是 MX 相關記錄開了橘色雲朵。請到「DNS」的「記錄」頁面,把 mail、smtp 等郵件主機的記錄改成灰色雲朵的「僅 DNS」,並確認 MX 以及 SPF、DKIM、DMARC 的 TXT 記錄都完整搬過來了。

把 API Token 交給服務商安全嗎

只要照上面的方式建立就是安全的。一組用「編輯區域 DNS」範本、區域資源限定在單一網域的 Token,能做的事情只有讀寫那一個網域的 DNS 記錄,不能登入你的帳戶、不能看到或修改其他網域、也不能變更方案或帳單。再加上來源 IP 限制與到期日,風險就被壓到很低。

要留意的是不要拿 Global API Key 交出去,那把鑰匙等同整個帳號。另外服務結束之後記得回到「API 權杖」頁面把那組 Token 停用或刪除。

API Token 弄丟了怎麼辦

沒有辦法找回。請到「設定檔」的「API 權杖」頁面,在該 Token 右側的選單中選擇 Roll 重新產生一組新的字串,或是直接刪除後重建。記得同步更新所有使用這組 Token 的程式。

補充說明

建立 API Token 時請永遠遵守最小權限原則:只給用得到的權限、只綁定用得到的網域、能設定 IP 限制就設定,臨時用途一定加上到期日。不同用途也請分開建立不同的 Token,日後要撤銷其中一組時才不會影響其他服務。

網域啟用之後,還有幾個建議可以順手完成:到「SSL/TLS」把加密模式設為「完整(嚴格)」、開啟「一律使用 HTTPS」,以及到「速度」的「最佳化」開啟 Brotli 壓縮。這些都在免費方案的範圍內,能再進一步提升網站的安全性與載入速度。

可以搭配郵件服務一起用嗎

可以,而且這正是把網域交給 Cloudflare 之後最順的一件事。DNS 全部集中在同一個介面,之後要接哪一家的郵件服務都很單純,MX、SPF、DKIM 與 DMARC 都在同一頁設定完,不必再回註冊商後台來回切換。

我們本身就提供以你自己網域為名的公司信箱。如果你用的是我們的服務,上面建立的這組 API Token 剛好可以派上用場:把它交給我們,SSL 憑證的申請與到期續期就由我們代為處理,你不用每次自己跑一遍 DNS 驗證的流程。做法是照〈建立 API Token〉的步驟建一組「編輯區域 DNS」的 Token,區域資源限定要委託的那一個網域,「客戶端 IP 位址篩選」填我們的伺服器 IP,來信索取即可,記得不要填成你自己的位址,建好後把字串以 Email 寄給我們就完成了。

如果連 DNS 記錄的日常維護都想一起交出去,另一種方式是到 Cloudflare 的「管理帳戶」點「成員」,用 Email 邀請我們加入。網域與帳戶的所有權完全留在你手上,我們只是被授權的成員,你隨時可以移除權限。

兩種做法需要的都只是單一網域的 DNS 權限,不會動到你的帳戶或其他網域。如果你連前面的網域切換都想省下來,也可以直接與我們聯絡,我們會先幫你盤點現有的 DNS 記錄,確認網站與收發信都對得起來之後再一起切換。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端