我使用 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
,但它没有提供答案。
答案1
/etc/resolv.conf
由目录中的片段构建/run/resolvconf/interface
(当前 Debian 和 Ubuntu 上的实际位置)/etc/resolvconf/run/interface
(旧位置,在 Debian 上仍然通过符号链接存在)。每个部分都以其关联的接口命名。
当它们不是静态时,中的条目/etc/resolvconf/run/interface
通常是从静态配置中设置的/etc/network/interfaces
,来自执行的脚本/etc/network/if-*.d
,或通过建立网络连接的服务(例如 NetworkManager、wicd 或 OpenVPN)。例如,OpenVPN 附带一个/etc/openvpn/update-resolv-conf
通常由 OpenVPN 客户端配置调用的脚本。