Github 部署 | DNS Pod 終極解決無法訪問(番外)

寫程式碼的海怪發表於2021-07-28

「本文已參與好文召集令活動,點選檢視:後端、大前端雙賽道投稿,2萬元獎池等你挑戰!

前言

昨天發了一篇 Github 部署 | CDN 加速網頁,速度嗖嗖的快!,之後覺得應該可以結束這一系列了。然而,評論裡有人說我的網頁訪問不了:

開啟一看,確實涼了。

剛開始還以為又欠費了,畢竟天天收到騰訊雲的郵件都沒仔細看。後來登上控制檯看,沒欠費呀,而且重新整理一下又好了。

思來想去,只有一種結果就是國外的 NameSilo 的 DNS 伺服器被 Block 了。

之前我也是使用騰訊雲的 DNS Pod 作為 DNS 伺服器的,只是昨天寫文章的時候換成了 NameSilo 的,想著也不會有問題,結果出了大問題。

問題

目前猜測是 NameSilo 的 DNS 伺服器被 Block 了。也就是訪問 yanhaixiang.com 的時候,DNS 會去找這個域名要匹配哪個 IP,或者 CNAME 等。

然而,瀏覽器到 DNS 伺服器這一步就被某些原因 Block 了,所以沒法解析域名,也就返回不了 html。

為了解決這個問題,可以使用騰訊雲提供的 DNS Pod 服務

新增 DNS Pod 記錄

進入管理頁面,新增一條解析。

把之前配置的 NameSilo 的解析記錄:

全都複製一遍到 DNS Pod 上:

轉移完之後,我們就在 DNS Pod 上又有了一套 DNS 的解析了。

配置 Name Server

現在我們已經有了 NameSilo 和騰訊雲 DNS Pod 兩套解析規則了,那怎麼才能將域名和 DNS Pod 繫結呢?答案是 Name Server。

重新開啟 NameSilo,點選你的域名,會看到 NameServers 這裡有 3 個預設 DNS 伺服器的地址。

這 3 個地址是 NameSilo 預設提供的 DNS 伺服器,一般來說域名服務商都會提供的。當訪問域名時,就會通過這些伺服器來查詢對應和解析 IP 地址,然後返回 html。

現在,只要將 NameServers 的地址改成騰訊雲提供的 DNS 伺服器地址就 OK 了。

騰訊雲提供的 DNS 伺服器地址就在控制檯的頭部:

把它們放到 NameSilo 的 NameServers 裡:

Submit 之後,等一會就配置好 DNS 的解析了。

注意事項

當改成 DNS Pod 解析域名後,NameSilo 上再更新 DNS 解析的配置就會有紅色的警告,這是正常的,因為你已經用別的 Name Server 來解析了。

如果你回去看 Github 的 Github Pages 配置,會出現下面的報錯:

這是因為當 CDN 有快取了之後,直接訪問域名不會再打到 Github 了,而是直接在 CDN 上返回了,然後 Github 說:“誒,你怎麼打不到我這”。事實上,並不影響使用者訪問。

總結

最後來總結一下我們幹了什麼:

  • 將 NameSilo 的 DNS 記錄 複製到騰訊雲的 DNS Pod 上
  • 將 NameSilo 的 NameServers 改成騰訊雲 DNS Pod 提供的 Name Server 地址

相關文章