Linux

探勘:/etc/resolv.conf 解析失敗

  • May 1, 2020

我嘗試使用 dig,但標題中出現錯誤。

我的 /etc/resolv.conf 是這個

nameserver 67.207.67.2
nameserver 67.207.67.3

nameserver ns1.name.com
nameserver ns2.name.com
nameserver ns3.name.com
nameserver ns4.name.com

前兩個是預設的數字海洋 dns,另一個是給我的域名註冊商的。

所以我嘗試添加兩個cloudflare dns,文件是這樣的:

nameserver 1.1.1.1
nameserver 1.0.0.1

nameserver 67.207.67.2
nameserver 67.207.67.3

nameserver ns1.name.com
nameserver ns2.name.com
nameserver ns3.name.com
nameserver ns4.name.com

在我這樣做之後,探勘仍然沒有工作。

但是,如果我評論 *name.com 名稱伺服器,則 dig 有效:

nameserver 1.1.1.1
nameserver 1.0.0.1

nameserver 67.207.67.2
nameserver 67.207.67.3

#nameserver ns1.name.com
#nameserver ns2.name.com
#nameserver ns3.name.com
#nameserver ns4.name.com

事實是,如果我評論這些 *name.com 域名伺服器,我的網站會在幾分鐘後關閉(並且仍然在嘗試修復)。

那麼我怎樣才能離開這些 *name.com 名稱伺服器並能夠使用 dig 和 nslookup 之類的東西呢?

編輯:下面的使用者注意到我必須在我的站點中配置錯誤。這是真的。我注意到 digitalocean 面板中有一個“域”設置,但我從未配置過。現在我做到了,並將我的註冊商的名稱伺服器更改為 digitalocean 名稱伺服器。現在我應該只等待名稱伺服器傳播我猜?

我的tcpdump -ni any port 53 | tee dns_problem.log輸出如下使用者建議:

08:27:34.721547 IP MYSERVERIP.55951 > 67.207.67.2.53: 20768+ AAAA? ams3.sonar.digitalocean.com. (45)
08:27:34.721634 IP MYSERVERIP.41382 > 67.207.67.2.53: 28628+ A? ams3.sonar.digitalocean.com. (45)
08:27:34.722304 IP 67.207.67.2.53 > MYSERVERIP.55951: 20768 0/1/0 (103)
08:27:34.722304 IP 67.207.67.2.53 > MYSERVERIP.41382: 28628 1/0/0 A 5.101.110.176 (61)
08:29:34.732206 IP MYSERVERIP.44766 > 67.207.67.2.53: 29521+ AAAA? ams3.sonar.digitalocean.com. (45)
08:29:34.732384 IP MYSERVERIP.45803 > 67.207.67.2.53: 49118+ A? ams3.sonar.digitalocean.com. (45)
08:29:34.734239 IP 67.207.67.2.53 > MYSERVERIP.44766: 29521 0/1/0 (103)
08:29:34.734239 IP 67.207.67.2.53 > MYSERVERIP.45803: 49118 1/0/0 A 5.101.110.176 (61)
08:29:34.844794 IP 54.91.82.218.54035 > MYSERVERIP.53: 23982+ ANY? www.example.com. (33)
08:31:34.740307 IP MYSERVERIP.54008 > 67.207.67.2.53: 47094+ AAAA? ams3.sonar.digitalocean.com. (45)
08:31:34.740643 IP MYSERVERIP.49591 > 67.207.67.2.53: 21439+ A? ams3.sonar.digitalocean.com. (45)
08:31:34.741079 IP 67.207.67.2.53 > MYSERVERIP.54008: 47094 0/1/0 (103)
08:31:34.741079 IP 67.207.67.2.53 > MYSERVERIP.49591: 21439 1/0/0 A 5.101.110.176 (61)
08:32:48.328903 IP 54.91.82.218.33095 > MYSERVERIP.53: 53251+ A? www.example.com. (33)
08:33:34.748240 IP MYSERVERIP.33811 > 67.207.67.2.53: 20882+ AAAA? ams3.sonar.digitalocean.com. (45)
08:33:34.748596 IP MYSERVERIP.40348 > 67.207.67.2.53: 63964+ A? ams3.sonar.digitalocean.com. (45)
08:33:34.749127 IP 67.207.67.2.53 > MYSERVERIP.33811: 20882 0/1/0 (103)
08:33:34.749127 IP 67.207.67.2.53 > MYSERVERIP.40348: 63964 1/0/0 A 5.101.110.176 (61)
08:35:34.762328 IP MYSERVERIP.46593 > 67.207.67.2.53: 52540+ AAAA? ams3.sonar.digitalocean.com. (45)
08:35:34.762875 IP MYSERVERIP.34757 > 67.207.67.2.53: 23545+ A? ams3.sonar.digitalocean.com. (45)
08:35:34.763153 IP 67.207.67.2.53 > MYSERVERIP.46593: 52540 0/1/0 (103)
08:35:34.763208 IP 67.207.67.2.53 > MYSERVERIP.34757: 23545 1/0/0 A 5.101.110.176 (61)
08:37:34.772318 IP MYSERVERIP.60307 > 67.207.67.2.53: 25440+ AAAA? ams3.sonar.digitalocean.com. (45)
08:37:34.772691 IP MYSERVERIP.35584 > 67.207.67.2.53: 14199+ A? ams3.sonar.digitalocean.com. (45)
08:37:34.773173 IP 67.207.67.2.53 > MYSERVERIP.60307: 25440 0/1/0 (103)
08:37:34.773225 IP 67.207.67.2.53 > MYSERVERIP.35584: 14199 1/0/0 A 5.101.110.176 (61)
08:39:34.782271 IP MYSERVERIP.35598 > 67.207.67.2.53: 17037+ AAAA? ams3.sonar.digitalocean.com. (45)
08:39:34.782652 IP MYSERVERIP.41388 > 67.207.67.2.53: 46756+ A? ams3.sonar.digitalocean.com. (45)
08:39:34.783076 IP 67.207.67.2.53 > MYSERVERIP.35598: 17037 0/1/0 (103)
08:39:34.783100 IP 67.207.67.2.53 > MYSERVERIP.41388: 46756 1/0/0 A 5.101.110.176 (61)
08:41:34.790595 IP MYSERVERIP.37914 > 67.207.67.2.53: 25940+ AAAA? ams3.sonar.digitalocean.com. (45)
08:41:34.790929 IP MYSERVERIP.42627 > 67.207.67.2.53: 1440+ A? ams3.sonar.digitalocean.com. (45)
08:41:34.791391 IP 67.207.67.2.53 > MYSERVERIP.37914: 25940 0/1/0 (103)
08:41:34.791493 IP 67.207.67.2.53 > MYSERVERIP.42627: 1440 1/0/0 A 5.101.110.176 (61)
08:41:49.641648 IP MYSERVERIP.53649 > 67.207.67.2.53: 5397+ [1au] A? google.com. (51)
08:41:49.642872 IP 67.207.67.2.53 > MYSERVERIP.53649: 5397 6/0/1 A 108.177.126.138, A 108.177.126.102, A 108.177.126.100, A 108.177.126.139, A 108.177.126.101, A 108.177.126.113 (135)
08:43:34.799037 IP MYSERVERIP.53977 > 67.207.67.2.53: 3711+ AAAA? ams3.sonar.digitalocean.com. (45)
08:43:34.799376 IP MYSERVERIP.37354 > 67.207.67.2.53: 64810+ A? ams3.sonar.digitalocean.com. (45)
08:43:34.799854 IP 67.207.67.2.53 > MYSERVERIP.53977: 3711 0/1/0 (103)
08:43:34.799869 IP 67.207.67.2.53 > MYSERVERIP.37354: 64810 1/0/0 A 5.101.110.176 (61)
08:45:34.810213 IP MYSERVERIP.37036 > 67.207.67.2.53: 49990+ AAAA? ams3.sonar.digitalocean.com. (45)
08:45:34.810328 IP MYSERVERIP.47914 > 67.207.67.2.53: 4935+ A? ams3.sonar.digitalocean.com. (45)
08:45:34.811003 IP 67.207.67.2.53 > MYSERVERIP.47914: 4935 1/0

不知道您為什麼要這樣做,但是將註冊商的伺服器放在您的 resolv.conf 中幾乎可以肯定是錯誤的做法。

同樣,將 DNS 名稱放入 resolv.conf 也是錯誤的做法。resolv.conf 用於定義將名稱轉換為 IP 的伺服器。如果您註釋掉了其他伺服器,那麼您希望 DNS 如何工作?您的 dns 客戶端如何知道要連接到哪個 IP 以ns1.name.com嘗試解析名稱?

resolv.conf 中的nameserver指令應該有 IP 地址。(見下面的人摘錄)。

事實是,如果我評論這些 *name.com 域名伺服器,我的網站會在幾分鐘後關閉。那麼我怎樣才能離開這些 *name.com 名稱伺服器。

你不應該試圖離開他們。讓他們在那裡是錯誤的。相反,您應該找出“真正的”問題並加以解決。

也許您出於某種原因需要執行具有“轉發區域”的本地 DNS 伺服器,以便您的域始終重定向到您的註冊商。也許您在其他地方不正確地配置了您的 DNS。你需要找到並修復它。

如果是我,我可能會刪除這些行,然後在 screen/tmux 中啟動一個 tcpdump 會話並觀察所有 DNS 流量。等待你看到的任何失敗發生。然後看看哪些 DNS 請求失敗了。然後修復它們。

您可能想要使用這樣的命令來使用 tcpdump 命令進行長時間執行的 dns 擷取。

tcpdump -ni any port 53 | tee dns_problem.log

供您參考,請參閱 resolv.conf 的手冊頁。

http://man7.org/linux/man-pages/man5/resolv.conf.5.html

  RESOLV.CONF(5) 
  ...
  nameserver Name server **IP address**
  Internet address of a name server that the resolver should
  query, either an IPv4 address (in dot notation), or an IPv6
  address in colon (and possibly dot) notation as per RFC 2373.
  ...

引用自:https://serverfault.com/questions/1015113