我可以提供多少個網域伺服器條目/etc/resolv.conf
?我已將我們 ISP 的 2 個名稱伺服器條目指定為第一和第二。但由於他們有時會遇到問題,我想新增 Google 公用名稱伺服器條目。第三條和第四條有什麼差別嗎?
這是resolv.conf
我們的代理(squid)伺服器上的。據我所知,Squid 用於/etc/resolv.conf
名稱解析。
答案1
實際上,/etc/resolv.conf 中只允許有三個伺服器條目。
答案2
我最初克服雙堆疊系統上3 個名稱伺服器限制的解決方案是安裝dnsmasq,但是這種解決方案會增加安裝和維護成本太多(我操作許多lxc 容器),所以我需要一個更簡單的解決方案,值得慶幸的是它存在。
我發現您可以使用 systemd-resolved 來克服 3 個名稱伺服器的限制。大多數現代發行版都已預設設定好並準備就緒。有一個檔案 /etc/systemd/resolved.conf 您可以在其中指定名稱伺服器 IP。編輯conf檔案並新增名稱伺服器,然後執行systemctl restart systemd-resolved。完畢!
我注意到有人評論說 resolv.h 中的 MAXNS 已經不存在了。我在 github 上查看的來源版本也沒有 MAXNS,但是我記得不久前遇到了 3 個名稱伺服器限制,因此它似乎仍然適用。
編輯:預設的 /etc/systemd/resolved.conf 已註解掉表明可以指定 3 個以上 DNS 伺服器的條目,但是在查看 /run/systemd/resolve/resolv.conf 時,我看到了此註釋
“配置的 DNS 伺服器太多,以下項目可能會被忽略。”
接下來是前 3 個之後的其他 dns ip 清單。
所以看來我們還是只有 3 個 DNS 伺服器,這很難理解為什麼。如果限制有正當理由,那麼至少應該在預設的 resolv.conf 檔案中闡明限制,並且檔案中建議的 DNS 條目不應超過 3,最後一種情況是解析器應該出錯當DNS 條目無效時重新啟動時會輸出。
答案3
您可以有效地擁有任意數量的名稱伺服器。請記住,第一個解決方案將在第二個解決方案之前失敗,依此類推。名稱解析嘗試到達第三和第四名稱伺服器還需要一段時間。
編輯:正如對此答案的評論中所解釋的,我錯了。預設情況下,您僅限於三個名稱伺服器,這似乎是編譯時選項(因此在運行時不容易更改)。