緣起#
我的部落格使用預設的域名已經有一段時間了。而且我其實並不太想去修改,原因是我的部落格使用的是 GitHub Page。我相信:背靠著微軟,GitHub 所提供的這項服務的可靠性會比我私人申請的域名要可靠得多。而我一直秉持著這樣一個觀點:一個部落格的死亡並不是因為它不再更新,而是無法訪問。也就是說,我認為部落格的持續性是要優先於其他很多方面的。
但是今天意外發現郵箱裡有一封郵件,通知我說申請的域名通過了。十分驚喜,因為我已經忘了這件事了。既然手頭上有一個域名,上學期也學了相關的知識,幹脆就試一試,在這次整理下相應的步驟。
步驟#
-
申請 / 購買域名
我使用的是EU.org。好處是免費,但所需時間很長。我在 5 月 27 日申請的,直到昨天(8 月 16 日)才通過。
-
選擇域名解析服務商
我選擇的是hostry,原因是免費。
-
在 DNS 提供商處創建 ALIAS、ANAME 或 A 記錄。
以下是我設置中的一部分:
子域名 類型 值 TTL, 秒 @ A 185.199.108.153 86400 @ AAAA 2606:50c0:8000::153 86400 www CNAME euds63.github.io 86400
在 Claude 的幫助下,我知道:
- A 記錄 (Address Record):將域名直接映射到一個 IPv4 地址。它是最基本的域名記錄類型。GitHub 提供了 4 個 IP 地址,而不是一個 IP,主要出於負載均衡和容錯的考慮。
- AAAA 記錄 (Quad-A record):用於將域名映射到 IPv6 地址。
- CNAME 記錄 (Canonical Name Record):將域名映射到另一個域名,實現域名別名的作用。
值得注意的是www CNAME euds63.github.io 86400
,我看到其他的教程有的是將子域名設置為@
,但在我的情況下會報錯Existing record 'SOA' conflicts with the code you are trying to create Cname should not have the same name as other records
。
- GitHub 配置
- 在「自訂域名」下,輸入你的自訂域名,然後點擊保存。
- 勾選「強制使用 HTTPS」
很明顯,這裡 GitHub 幫我們簡化了許多操作。包括哪些呢?
根據Securing your GitHub Pages site with HTTPS可知,當在 Pages 設置中設置或更改自訂域名後,GitHub 會:
- 開始自動進行 DNS 檢查。此檢查確定您的 DNS 設置是否配置為允許 GitHub 自動獲取證書。
- 如果檢查成功,GitHub 會排隊請求從 Let's Encrypt 獲取 TLS 證書。
- 在收到有效證書後,GitHub 會自動上傳到處理 Pages 的服務器上的 TLS 終止。當此過程成功完成時,您的自訂域名旁邊會顯示一個勾號。
但如果不是使用 GitHub Page,該怎麼做呢?
驗證#
$ ping ds63.eu.org
正在 Ping ds63.eu.org [185.199.108.153] 具有 32 位元組的資料:
來自 185.199.108.153 的回覆: 位元組=32 時間=77ms TTL=54
來自 185.199.108.153 的回覆: 位元組=32 時間=103ms TTL=54
來自 185.199.108.153 的回覆: 位元組=32 時間=76ms TTL=54
來自 185.199.108.153 的回覆: 位元組=32 時間=77ms TTL=54
185.199.108.153 的 Ping 統計資料:
封包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 76ms,最長 = 103ms,平均 = 83ms
$ ping -6 ds63.eu.org
正在 Ping ds63.eu.org [2606:50c0:8001::153] 具有 32 位元組的資料:
來自 2606:50c0:8001::153 的回覆: 時間=74ms
來自 2606:50c0:8001::153 的回覆: 時間=81ms
來自 2606:50c0:8001::153 的回覆: 時間=74ms
來自 2606:50c0:8001::153 的回覆: 時間=72ms
2606:50c0:8001::153 的 Ping 統計資料:
封包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
最短 = 72ms,最長 = 81ms,平均 = 75ms