網域與 DNS 如何運作:非工程師指南
網域是人們輸入以造訪你網站的名稱,例如 example.com;DNS(網域名稱系統)則是網際網路的電話簿,會把這個名稱轉換成你的網站實際所在的位置。你向註冊商租用網域,然後新增 DNS 紀錄,告訴網際網路「網站在那裡」,以及「郵件走這裡」。把自訂網域連接到應用,主要就是在正確的位置新增正確的紀錄,然後等它生效。
為什麼用 AI 建置時這很重要
AI 應用建置工具可以撰寫並代管你的應用,但你的網域位於它之外,通常由另一家公司管理,放在一個充滿陌生紀錄類型的控制面板中。許多上線都卡在這裡:應用已經準備好,但網域顯示錯誤,或是 DNS 變更後郵件莫名其妙停止運作。
一點基本認識就能帶來很大幫助。你會知道代管服務要求哪一種紀錄、為什麼還沒生效,以及如何避免弄壞那些已經依賴你網域的東西(例如郵件)。
日常生活的比喻
想想你手機裡的聯絡人清單。
你不需要記住朋友的電話號碼;你點一下他的名字,手機就會查出號碼。DNS 對網際網路做的是同樣的事:你輸入 example.com,DNS 就會查出要連接的伺服器號碼(IP 位址)。
- 網域就是聯絡人的名字。
- 註冊商是正式登記這個名稱歸你所有的公司。
- DNS 紀錄就是存在這個名字底下的細節:電話號碼、電子郵件、住址。
- 名稱伺服器是哪一本通訊錄是這個名字的正式版本。
- 快取就是你的手機記住號碼一段時間。如果朋友換了號碼,有些手機會一直打舊號碼,直到儲存的副本被更新為止,這就是 DNS 的「傳播」。
網域名稱的組成部分
以 app.example.com 為例:
| 部分 | 名稱 | 說明 |
|---|---|---|
.com | 頂級網域(TLD) | 由註冊管理機構營運。其他還有 .org、.io、.ai,以及像 .uk 這樣的國家代碼 |
example | 二級網域 | 你註冊的部分 |
example.com | 根網域或「頂點」網域 | 你擁有的部分 |
app | 子網域 | 你可以在 DNS 中自由建立,例如 www、app、shop |
你不是直接買下網域;而是註冊一段期間(通常一年以上)並定期續約。如果讓它過期,別人就可以註冊它。
DNS 查詢如何運作
當有人輸入 app.example.com:
- 瀏覽器會向 DNS 解析器查詢位址,解析器通常由其網路服務商或公共服務營運。
- 如果解析器有新鮮的快取答案,會立即回覆。
- 如果沒有,它會沿著層級往下查:根伺服器會把它導向
.com伺服器,.com伺服器再把它導向你網域的名稱伺服器。 - 你的名稱伺服器會回傳你設定的紀錄,例如指向你的主機的 CNAME,或是含 IP 位址的 A 紀錄。
- 解析器會依照紀錄的 TTL(存活時間)快取這個答案,然後交給瀏覽器,由瀏覽器連接到伺服器。
這整個過程通常在毫秒之內完成。
你實際會用到的 DNS 紀錄類型
| 紀錄 | 作用 | 範例 |
|---|---|---|
| A | 把名稱指向 IPv4 位址 | example.com → 203.0.113.10 |
| AAAA | 把名稱指向 IPv6 位址 | example.com → 2001:db8::10 |
| CNAME | 讓一個名稱成為另一個主機名稱的別名 | app.example.com → myapp.host.com |
| MX | 指定哪些伺服器接收網域的郵件,並附上優先順序數字 | example.com → 10 mail.provider.com |
| TXT | 存放文字,用於驗證與電子郵件安全 | v=spf1 include:_spf.provider.com ~all |
| NS | 列出網域的權威名稱伺服器 | ns1.dnsprovider.com |
| CAA | 限制哪些憑證機構可以核發 HTTPS 憑證 | 0 issue "letsencrypt.org" |
以下幾條規則值得了解:
- CNAME 不能與其他紀錄共用同一個名稱。 這就是為什麼標準的 CNAME 不能放在根網域上,因為根網域一定有 NS 和其他紀錄。許多 DNS 服務商提供稱為 ALIAS、ANAME 或 CNAME 扁平化的變通方法。
- TXT 紀錄負責許多電子郵件工作。 SPF 列出可以代表你的網域寄信的對象;DKIM 發布用來驗證簽章的金鑰;DMARC 則告訴接收方如何處理未通過這些檢查的郵件。
- MX 數字越小,優先順序越高。 郵件會先嘗試最小的數字。
傳播與 TTL
「傳播」聽起來像是變更慢慢擴散到整個網際網路。實際上發生的是快取:解析器會依 TTL 保留每個答案的副本,只有在過期後才會重新查詢。因此:
- 從未被查詢過的新紀錄,通常幾分鐘內就會生效。
- 變更既有紀錄,需要等到舊的 TTL 過期,才會在各處看到變更。
- 變更名稱伺服器可能需要一到兩天,因為這些紀錄在頂級網域層級被快取的時間更長。
一個實用的技巧:在計畫變更之前,先把紀錄的 TTL 調低(例如幾分鐘),等舊的 TTL 過期後,再進行變更。
實例:把預約應用連接到你的網域
你擁有 yoursalon.com,目前的網站與 Google Workspace 郵件都在使用它。你建置了一個預約應用,想讓它位於 book.yoursalon.com。
- 找出你的 DNS 在哪裡管理。 可能是你的註冊商,也可能是另一家 DNS 服務商。你的 NS 紀錄會告訴你。
- 為
book新增 CNAME,指向你的應用主機提供的目標。 - 如果主機要求,新增任何用來證明擁有權的 TXT 紀錄。
- 不要動 MX 與郵件的 TXT 紀錄。 因為你沒有碰它們,郵件會繼續正常運作。
- DNS 更新後,在你的主機上進行驗證。 主機接著會為
book.yoursalon.com核發 HTTPS 憑證。 - 用手機的行動數據測試。 行動數據使用的解析器與快取,和你家中 Wi-Fi 不同。
如果你想把應用放在根網域 yoursalon.com 上,就需要 A 紀錄,或是你的 DNS 服務商的 ALIAS/扁平化功能,而且你會取代那裡目前的網站。更多步驟請參閱如何連接自訂網域。
常見錯誤與誤解
- 「網域和主機是同一回事。」 網域是名稱;主機是應用運行的地方。DNS 把兩者連結起來。
- 主機要求 CNAME 時卻使用 A 紀錄(反過來也一樣)。請嚴格依照主機的指示操作。
- 目標輸入錯誤。 CNAME 目標中一個字元錯誤,驗證就會失敗。
- 在未複製紀錄的情況下更換名稱伺服器。 把 DNS 移到新的服務商,卻沒有重新建立 MX 與 TXT 紀錄,是弄壞郵件的典型方式。
- 不該使用代理時卻使用了代理。 有些 DNS 服務商(例如 Cloudflare)可以代理流量。有些主機則需要把紀錄設為「僅 DNS」,才能核發憑證。
- 刪除「不明」的 TXT 紀錄。 它們通常是驗證或電子郵件安全紀錄,而某些功能依賴它們。
- 讓網域過期。 開啟自動續約,並確保付款卡資料是最新的。
向你的 AI 建置工具詢問什麼
DNS 位於你的程式碼之外,所以重點在於要問什麼:
- 「app.mydomain.com 需要什麼確切的 DNS 紀錄?包括類型、名稱與值。」
- 「這項變更會影響我的郵件嗎?」
- 「加入紀錄後網域顯示錯誤,我應該檢查什麼?」
- 「加入正確的標準網址與重新導向,避免 www 與非 www 網址都顯示網站。」
- 「設定從我的網域寄送郵件——我需要哪些 SPF、DKIM 與 DMARC 紀錄?」參閱如何從應用寄送電子郵件。
Mythex 上的自訂網域
每個已發布的 Mythex 應用都會獲得 yourname.mythex.app 位址。Pro 方案則可以改用你自己的網域:你可以在 Mythex 內購買網域(註冊費另外計費,購買的網域其 DNS 由我們為你代管),或連接你已經擁有的網域,方法是新增一條從子網域(例如 app.example.com)指向你應用的 yourname.mythex.app 位址的 CNAME,然後點擊驗證。HTTPS 會自動核發。如果你的 DNS 放在 Cloudflare,請把該紀錄設為「僅 DNS」。建議使用子網域;根網域則取決於你的 DNS 服務商是否支援 ALIAS 或扁平化。自訂網域文件會逐步說明每個步驟,而 價格頁面則列出 Pro 方案包含的內容。
常見問題
用簡單的話說,DNS 是什麼?
DNS(網域名稱系統)是網際網路的電話簿。它會把人們容易記住的名稱(例如 example.com)轉換成電腦需要的資訊,通常是 IP 位址,讓瀏覽器能找到正確的伺服器。
A 紀錄和 CNAME 有什麼不同?
A 紀錄會把一個名稱直接指向 IPv4 位址。CNAME 則把一個名稱指向另一個主機名稱,然後從那裡繼續查詢。當你的主機 IP 位址可能會變動時,CNAME 很方便,但標準的 CNAME 不能用在根網域本身。
DNS 傳播需要多久?
通常幾分鐘,有時需要幾小時。變更的生效時間取決於舊紀錄的快取過期時間,也就是該紀錄的 TTL。變更名稱伺服器可能需要一到兩天,因為這些紀錄被快取的時間較長。
更改網站的 DNS 會影響我的電子郵件嗎?
只有在你更改或刪除電子郵件所依賴的紀錄時才會。這些紀錄包括 MX 紀錄,以及 SPF、DKIM、DMARC 等 TXT 紀錄。為 www 或 app 新增 CNAME 不會影響郵件。如果你在未先複製這些紀錄的情況下把網域移到新的名稱伺服器,郵件可能會失效。
為什麼要用 www 或 app,而不是根網域?
像 www.example.com 或 app.example.com 這樣的子網域可以使用 CNAME,許多代管平台都要求這種設定。根網域(example.com)不能使用標準的 CNAME,因此需要 A 紀錄,或服務商提供的 ALIAS、ANAME 或 CNAME 扁平化功能。