DNS是Domain Name System的縮寫,是Web環境中最常見但最容易被誤解的元件之一。簡而言之,DNS通過將域名與實際的Web伺服器連線來幫助引導Internet上的流量。本質上,它需要一個人性化的請求——一個像ping這樣的域名——並將它轉換成一個對計算機友好的伺服器IP地址——比如47.92.146.138。
由於DNS就是查詢地址和連線裝置,因此許多人稱DNS為“網際網路電話簿”。如果沒有DNS,您必須記住每個站點的IP地址才能訪問它……好吧,那是行不通的!
DNS如何工作?
當使用者在其Web瀏覽器中輸入URL時,DNS開始工作以將該URL連線到實際伺服器的IP地址。這稱為DNS名稱解析,涉及DNS遞迴查詢各種名稱伺服器以找出伺服器的實際IP地址。
DNS主要關注四個元件:
讓我們來談談這四個元件以及它們如何協同工作。
域名註冊商
域名註冊商是購買域名和維護域名註冊的服務提供商(例如GoDaddy或 Namecheap或阿里雲)。
註冊商是指定域名伺服器的地方。
大多數註冊商都包括基本的DNS服務,但需要支付域註冊費用。因此,除非您向域新增自定義名稱伺服器,否則域將使用註冊商的標準名稱伺服器。這意味著在絕大多數情況下,預設情況下,DNS記錄由註冊商管理。
名稱伺服器
名稱伺服器是很像Web伺服器的伺服器。但是,它們被配置為儲存DNS記錄,而不是為網站或Web應用程式提供服務。
這意味著當您想要更改任何DNS記錄時,您必須在註冊商或第三方服務(例如Cloudflare)指定的名稱伺服器上更改這些DNS記錄。
這一步通常有點令人困惑,所以讓我們看一個虛構的例子來分解一下:
- 您的域 (example.com) 已在GoDaddy註冊。
- 您將Cloudflare的域名伺服器新增到您的GoDaddy帳戶中的example.com以開始使用Cloudflare。
- 您在GoDaddy更改example.com的 DNS 記錄。此更改不會做任何事情,因為域未使用GoDaddy的名稱伺服器。
- 您在Cloudflare對example.com進行了相同的DNS更改。此更改將生效,因為該域正在使用Cloudflare的名稱伺服器。
因此,換句話說,如果您只使用GoDaddy,您將需要使用GoDaddy更新您的DNS記錄,因為它們控制著您的域名伺服器。如果您使用Cloudflare,您將需要使用Cloudflare更新您的DNS記錄,因為它們控制您的名稱伺服器。使用DNSPod的使用者也是如此。
DNS記錄
DNS記錄將域與基於Web的服務相關聯。
有幾種不同型別的DNS記錄,但在大多數情況下,只使用4或5種型別的DNS記錄:
- A記錄:用於將域或子域指向IPv4地址。這是用於將example.com之類的域指向example.com網站所在的Web伺服器的規則。(注意:如果Web伺服器使用IPv6地址而不是IPv4地址,則使用AAAA記錄而不是A記錄)。深入瞭解A記錄
- CNAME記錄:用於將子域關聯到主域或規範域。這種型別的規則通常用於將www子域與主域相關聯,例如www.example.com與example.com。深入瞭解CNAME記錄
- MX記錄:用於將域與電子郵件服務相關聯。如果您希望將example.com的郵件傳送到特定的電子郵件服務(例如Gmail),則使用此型別的規則。深入瞭解MX記錄
- TXT記錄:用於將任意文字與域相關聯。最常見的是,TXT記錄用於將SPF記錄與域相關聯,以提高電子郵件的可傳遞性並防止垃圾郵件傳送者在傳送垃圾郵件時濫用域名。
閃電博的DNS記錄示例
網頁服務
在我們的例子中,網路服務是網站託管。必須將A記錄(或AAAA記錄)新增到域的名稱伺服器以將該域與託管該網站的Web伺服器相關聯。
還有許多其他型別的Web服務通過DNS記錄與域相關聯:電子郵件、SFTP、託管控制面板、Web郵件應用程式和phpMyAdmin僅舉幾例。
DNS傳播
當您對給定域的DNS進行更改時(例如更新DNS記錄或切換名稱伺服器),這些更改需要一些時間才能生效。這個時間稱為傳播。
傳播從一種情況到另一種情況有很大差異。
對於DNS記錄,每條記錄都有一個關聯的生存時間 (TTL) 值。此值確定對DNS記錄的更改生效的速度。
在大多數情況下,DNS記錄的TTL預設設定為1或4小時。這意味著大部分時間DNS更改最多需要4小時才能生效。更高的TTL值也是可能的,這意味著當DNS記錄更新時,更改完全生效需要更多時間。在某些極端情況下,有些可能具有高達一週的TTL值。
在名稱伺服器的情況下,註冊商確定TTL值並且它通常不能更改。這意味著當您切換到新的域名伺服器時,這些更改可能需要幾分鐘到一天或更長時間才能生效。
託管服務提供商無法加速DNS傳播。您可以做的是在對DNS記錄進行任何更改之前很好地減少TTL,以便更改儘快傳播。您可以使用whatsmydns.net等線上工具來測試您的DNS更改是否已完成傳播。
DNS配置 – 如何設定您的域
您通常可以通過兩種方式設定DNS,您可以選擇您喜歡的任何一種方法。
一種方法是通過您的域名註冊商將您的域的名稱伺服器簡單地指向您主機的名稱伺服器。這些是至少兩個獨立的URL,看起來像這樣(你可以有兩個以上的URL,但不能更少):
- ns1.yourhost.com
- ns2.yourhost.com
您也可以使用類似DNSPod域名解析服務商,免費使用他們提供的名稱伺服器,如下所示:
- f1g1ns1.dnspod.net
- f1g1ns2.dnspod.net
DNSPod域名解析服務
即使您使用包含的高階DNSPod,您仍然需要設定A記錄和CNAME記錄才能將您的域與伺服器一起使用。
除了簡單地更改域伺服器之外,另一種選擇是在域註冊商處實際編輯域的A記錄。A記錄實際上包含您伺服器的IP,並將流量引導到正確的位置。
免費DNS與高階DNS
您可以找到免費DNS和高階DNS。
選擇優質DNS的一大原因是速度和可靠性。查詢DNS記錄和引導流量需要時間,即使只是幾毫秒的時間。
通常,您從域名註冊商處獲得的免費DNS相對較慢,而高階DNS通常提供更好的效能。
此外,高階DNS可以提供更好的安全性和可用性,尤其是當您受到DDoS攻擊時。
為了在您的域註冊商提供的免費DNS和高階DNS之間取得良好的中間立場,Cloudflare DNS是一項免費服務,它仍然提供高階DNS的許多好處。
下面是一些國內不錯的高階DNS服務:
小結
希望您現在對DNS的工作原理有了更多的瞭解。概括地說,DNS用於將基於Web的服務(例如網站託管和電子郵件)與域名相關聯。這包括四個步驟:
- 域必須在域註冊商處註冊。
- 域名伺服器必須由域名註冊商指定。
- DNS記錄必須新增到域註冊商或第三方服務(例如Cloudflare)指定的名稱伺服器。
- DNS記錄必須完全傳播以將域與每個相關的Web服務相關聯。
評論留言