有些人無法連接到我的域名伺服器託管的域
我已經使用 bind9 為我的 VPS 服務設置了名稱伺服器。我的伺服器安裝了 Ubuntu 10.04LTS。
我面臨的問題是,對於某些人來說,他們根本無法連接到我的伺服器。我認為這與 DNS 設置有關。
為了測試這個問題,我做了以下測試。可以說我的伺服器作為伺服器 A(名稱伺服器)。
從隨機伺服器 B,如果我
dig
到我的伺服器 A 上託管的域之一,它總是找到返回“NoError”結果。(這意味著成功)但是,對於隨機伺服器 C,如果我
dig
到我的伺服器上託管的一個域,大約一半的時間,它返回SERVFAIL
結果,另一半返回“NoError”。這真的很奇怪,因為幾秒鐘前成功的探勘怎麼會失敗?使用我的名稱伺服器(綁定)的域之一如下所示。
$TTL 604800 @ IN SOA ns.xxxx.net. admin.xxxx.net. ( 20110120 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.xxx.net. @ IN A xxx.xxx.xxx.78 ns IN A xxx.xxx.xxx.78 www IN A xxx.xxx.xxx.78
是否有任何異常可能導致問題?有人說 TTL 604800 太長了.. 是嗎?
首先,如果您最近更改了域的名稱伺服器,那麼傳播是一個可能的原因。無論如何,下面的測試應該有助於確定配置是否正確。
***測試 1:***確定為您的域配置的 DNS 伺服器。執行並記下以下命令的結果:
$ whois domain.com
- 顯示 WHOIS 記錄已列為您的名稱伺服器(是的,這可以從大多數 *nix 系統的命令行完成)
$ dig +trace ns domain.com
- 交叉引用 WHOIS 上列出的 NS 與 DNS 伺服器所說的內容(+trace
提供查詢時命中的伺服器的詳細視圖,“ns”查詢域的 NS 記錄)。理想情況下,您希望在伺服器 B 和伺服器 C 上執行它並比較結果
$ dig +trace domain.com
- 只是為了更好地衡量,請查看 dig 查詢僅針對域本身所說的內容。同樣,在兩台機器上進行此測試。注意:我相信這是您可能會看到失敗的地方。聽起來您的一個名稱伺服器由於某種原因沒有響應。這可能是由於您的 DNS 伺服器之一設置或傳播不正確。
***測試 2:***直接查詢您的名稱伺服器以確保它們都正確設置
理想情況下,您應該在兩台單獨的機器上為您的域配置兩個名稱伺服器。許多人不這樣做(我假設如果他們的域名伺服器發生故障,他們的域無法解析,這沒什麼大不了的)。我們將查詢兩個名稱伺服器以確保返回正確的 IP 地址。使用以下方法執行此操作:
$ dig @ns1.domain.com domain.com
- 將“ns1.domain.com”替換為您的 DNS 伺服器的 IP 地址或主機名(IP 地址以便更好地衡量)。同樣,測試第二個名稱伺服器並確保它提供正確的值:
$ dig @ns2.domain.com
- 同樣,將“ns2.domain.com”替換為您的 DNS 伺服器的 IP 地址或主機名(IP 地址以便更好地衡量)。這些測試應顯示任何一台機器的配置或 DNS 解析過程中的任何異常。
希望有幫助。如果您仍有問題,請發布結果。