Dns
resolv.conf 與 DHCP 和本地 DNS 伺服器
我已經在我的機器上安裝了一個本地 DNS 伺服器 (coredns) 並通過設置啟動它
name_servers=127.0.0.1
在 resolvconf.conf 中。現在我切換網路並希望將 DHCP 提供的解析設置(至少是名稱伺服器)放在另一個文件中,我可以通過添加外部 DNS 伺服器將請求轉發到該文件。
我怎麼知道
resolvconf.conf
設置名稱伺服器 127.0.0.1/etc/resolv.conf
但將 dhcp 提供的數據寫入 /run/resolv/dhcp 之類的東西?我正在執行 Manjaro
我假設 Debian 或相關發行版;其他發行版的設置可能
resolvconf
不同。您需要在 coredns 伺服器啟動時執行此命令:
echo nameserver 127.0.0.1 | /sbin/resolvconf -a lo.coredns
當它停止時:
/sbin/resolvconf -d lo.coredns
resolvconf
將自動將 127.0.0.1 設置為首選伺服器,/etc/resolv.conf
並且不會添加任何其他伺服器,直到它收到 coredns 守護程序已停止的資訊(通過上面的第二個命令)。然後,您可以編寫自己的附加腳本來
/etc/resolvconf/update.d/
將 DHCP 提供的資訊寫入其他配置文件(例如 的配置文件coredns
)。在 Debian 9 中,這正是 BIND 和resolvconf
相互集成的方式。或者,您可以使用
/run/resolvconf/interface/
目錄中的文件來獲取 DHCP 提供的 DNS 伺服器資訊。