去年在 namecheap 用 $1.16 的價格買了一年 jhtnt.space 這個域名來玩玩看,但續費要 $25.98 太貴了,剛好我也想換個短一點的頂級網域 (Top-level Domain)。找了一圈發現 Cloudflare 的價格是最穩定公道的(不愧是賽博佛祖),而且我本來就用 Cloudflare 在管理,遷移到新域名很方便。最後用每年 $8.00 的價格買了 jhtnt.cc

我舊域名的 DNS 跟服務已經在 Cloudflare 上設定好了,本文章的目的是簡單快速地遷移到新域名,如果是從零開始請另尋其他教學文章。

DNS Record

首先把 DNS record 全部搬到新域名,先到舊域名的「DNS -> Records」,從 Import and Export 下載下來,然後打開文字編輯器,把舊域名批量替換成新域名,並且把 NS Records 刪掉(Cloudflare 會自動為新域名分配 name server),然後到新域名的 Import and Export 上傳檔案就好。後續再把不相關或衝突的 Record 手動修改。

如果服務需要指定 CNAME(例如 GitHub Pages),記得也要一起改成新域名才連得到。

如果 CNAME Records 裡面有 Cloudflare Tunnel 產生的 address (xxx.cfargotunnel.com.),需要先刪掉這行不直接匯入,否則下一步修改 Hostname 時會因為 CNAME 已經存在導致無法變更。

或者先做下一個步驟再改 DNS 也行,衝突的 Records 會自動忽略。

GitHub Pages

雖然 DNS record 已經搬過去了,但 GitHub Pages 的 custom domain 還是指向 blog.jhtnt.space,要去 repo 的設定改成 blog.jhtnt.cc

MX Record

我舊域名是 namecheap 的,有一些 Email Forwarding 的 MX record(忘記是自己設還是自動掃描到的),現在的服務商變成 Cloudflare 需要刪掉。

由於我目前沒有這個需求,直接刪掉 MX record 就好,如果有需要可以使用 Cloudflare Email Routing

Cloudflare Tunnel Hostname

進入「Zero Trust -> Networks -> Connectors」,再進入 Tunnel 設置,在 Published application routes 選擇要修改的 application routes,將 Hostname 的 Domain 改成新的域名後儲存即可。

Cloudflare Access

Cloudflare Access

若有設定 Cloudflare Access(如上圖),先確認在 Connectors 頁面的 「Additional application settings -> Access -> Enforce Access JSON Web Token (JWT) validation」是否有打開。

接著到「Zero Trust -> Access controls -> Applications」,把 domain 修改成新的。

參考連結