如何知道 resolv.conf 条目来自哪里?

如何知道 resolv.conf 条目来自哪里?

我使用 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 客户端配置调用的脚本。

相关内容