Debian

如何知道 resolv.conf 條目來自哪裡?

  • January 11, 2022

我使用 resolvconf 來管理名稱伺服器,因為我的 OpenVPN 需要它。但是,我注意到它生成的名稱伺服器資訊並非我想要的那樣:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 173.31.45.181
nameserver 192.168.1.1
nameserver 8.8.8.8
search lan 8.8.8.8

當我沒有連接到 VPN 時,這裡的每個指令都是不受歡迎的,除了nameserver 8.8.8.8. 我怎麼知道為什麼 resolvconf 放置一個特定的條目?有沒有辦法辨別什麼程序想要nameserver 192.168.1.1在那裡?我試過man resolvconf了,但它沒有提供答案。

/etc/resolv.conf是從目錄中的部分建構的/run/resolvconf/interface(目前 Debian 和 Ubuntu 上的實際位置)[/etc/resolvconf/run](http://manpages.debian.org/cgi-bin/man.cgi?query=resolvconf&sektion=8)/interface(舊位置,仍然通過 Debian 上的符號連結存在)。每個部分都以其關聯的介面命名。

當它們不是靜態的時,/etc/resolvconf/run/interface通常從 中的靜態配置/etc/network/interfaces、從 中執行的腳本/etc/network/if-*.d或通過設置網路連接的服務(例如 NetworkManager、wicd 或 OpenVPN)設置條目。例如,OpenVPN 附帶一個/etc/openvpn/update-resolv-conf通常由 OpenVPN 客戶端配置呼叫的腳本。

引用自:https://unix.stackexchange.com/questions/273050