DNS設定基本觀念
前言
最近使用GoDaddy虛擬主機架設了一個WordPress的網站,並且使用購買的網域,卻發現該網域的信箱收不到信件,於是查了一些相關資料,發現問題出在網域DNS的設定,後來了解DNS的設定後,實作成功並且解決信箱問題,特此紀錄,希望有遇到相同問題的朋友們,可以參考看看。
Godaddy網域購買連結
常見問題
- 為什麼輸入www.yourname.com與yourname.com的連線結果會不同?
- 為什麼輸入xxx@mail.yournamecom或xxx@yourname.com會收不到信件?
- DNS到底應該怎麼設定才對?
- A、CNAME、MX是什麼意思?
- 若您有類似的相關問題,都值得參考本文。
導讀
先來看一下DNS紀錄有哪些類型吧!
- SOA(Start Of Authority) 是唯一僅有一個的紀錄,並且是檔案中的第一個紀錄,負責描述這個zone的 name server等等。
- NS(Name Server) 用來指定操作的DNS主機名稱,例如dns.yourname.com。
- A (Address) 負責將DNS網域對應到IPv4的32位元 位址。
- AAAA 從名稱來看可以知道是A的4倍,也就是32的4倍,所以就是將DNS網域對應到IPv6的128位元位址。
- PTR(Pointer) 定義IP所對應的Domain Name,也就是將 IP位址轉成主機的FQDN(fully qualified domain name,完整網域名稱),例如www.主機名稱.yourname.com,就是FQDN。
- CNAME(Canonical Name) 表示一部主機可以設定很多別名,例如www.yourname.com 和 ftp.yourname.com都會是連到同一台主機。
- MX(Mail Exchanger) 設定區域中的郵件伺服器主機,也就是說所有mail將透過MX轉送到你的主機,其優先順序則是依照值越低,表示有越高的郵件優先處理權。
看完類型介紹後,將對接下來的設定更容易了解其用途與用法。
內容
A紀錄
DNS的A紀錄是用來與IP直接對應的,所以常見的主機IP對應設定如下:
設定一、
- 類型 : A
- 名稱 : www
- 值 : 192.168.0.1
- TTL : 10800秒
表示當用戶輸入www.yourname.com 會自動導到位置 192.168.0.1上。
設定二、
- 類型 : A
- 名稱 : @
- 值 : 192.168.0.1
- TTL : 10800秒
表示當用戶輸入yourname.com 會自動導到位置 192.168.0.1上。
設定三、
- 類型 : A
- 名稱 : *
- 值 : 192.168.0.1
- TTL : 10800秒
表示當用戶輸入****.yourname.com 都會自動導到位置 192.168.0.1上,例如mail、ftp 等等任何名稱都會自動對應。
當您明白設定規則後,就可以依照個人需求去宣告設定,指定用戶輸入哪些名稱時,該如何對您的IP位址。
Mazast的小建議:www、@算是基本常用的名稱宣告,您的DNS設定最好都包含這兩種,然而*算是一個廣泛的應用,若您對於名稱沒有太多安排,又希望所有包含您網域的網址,都可以順利連到您的IP,那麼這就會是您最佳且最方便的設定。
MX
接下來是介紹MX紀錄,MX紀錄是用來與郵件伺服器IP A類型記錄對應的,舉例來說,就是當接收郵件時,會先根據您的MX設定,去找出您的郵件伺服器IP,若此時沒有對應好,那麼可能就會導致無法收到對方信件的問題,因為Mazast就是遇到這個問題,所以各位朋友們,有疑似收不到信的問題,可以參考以下解決方法,新增以下DNS紀錄。
設定一、
- 類型 : A
- 名稱 : mail
- 值 : 192.168.0.1
- TTL : 10800秒
設定二、
- 類型 : MX(Mail)
- 名稱 : @
- 值 : mail.yourname.com
- TTL : 10800秒
這兩個紀錄究竟是什麼含意呢?讓Mazast一一為您解釋清楚,MX紀錄就是當有人寄信給您的時候,他在收件人地方所輸入的位址,並且對應到您的郵件伺服器,以上面的範例來說,@的意思如本文開頭所介紹的,如果對方輸入xxxx@yourname.com給您的郵件伺服器時,此時會先幫您轉成換到mail.yourname.com網址,然而這階段還沒對應到您郵件伺服器的IP A紀錄,所以我們必須新增 mail名稱的A紀錄,並且指定到您的郵件伺服器的IP,新增完之後,我們就能從mail.yourname.com對應到IP位置了,這些設定是環環相扣的,所以必須先清楚網址的流程,規畫好路線,如此一來,對於DNS的設定就能更為順暢,我們只要明白設定的基本原理,那麼如何變通都是一樣的。
補充
ttl是什麼意思呢?
TTL (time to leave)是 DNS 記錄中的一個值,用來定義 DNS 記錄的後續變更生效前的秒數。在您的網域中,每個 DNS 記錄 (例如 MX 記錄、CNAME 記錄等) 都具有 TTL 值,其決定了您對記錄所做的變更需要多久才會生效。舉例來說,如果一個記錄的 TTL 為 86400 秒,則變更將需要 24 小時才會生效。
Mazast的小建議:若您不常更改DNS紀錄,可以將TTL時間設長一點,加快每次用戶連線速度,因為用戶端不用重新Query,主機流量也能減少許多,若您是測試階段,則可以設短一點,以便測試時,可以更快更新DNS紀錄,達到測試目的,所以長短的取捨還是依照您網站的使用需求為主喔。
結語
本文為Mazast的小小經驗紀錄,若各位朋友有發現什麼錯誤或疑慮的地方,甚至是更好的解釋,都請您不吝指教,共同進步成長,謝謝每位來拜訪閱讀的朋友,希望能對您有所幫助。