我正在使用 Linux Mint,其输出nm-tool
是:
DNS: xxx.xxx.xxx.xxx
DNS: xxx.xxx.xxx.xxx
从哪里nm-tool
获取这些 DNS IP?
来自操作系统文件系统中的哪个文件?
答案1
正如@terdon 评论的那样,nm-tool
似乎是一个过时的实用程序。
nm-tool
与之通信NetworkManager
可以从许多可能的来源获取 DNS IP:
- 如果任何网络接口已配置为使用 DHCP,则来自 DHCP 响应(每个 NIC 的 DHCP 响应数据可以作为
/var/lib/NetworkManager/
目录中的文件提供) - 来自文件(
/etc/NetworkManager/system-connections/
如果已配置)(NetworkManager 的“本机”配置存储后端) - 来自文件
/etc/network/interfaces
(NetworkManager 的 Debian/Ubuntu 只读向后兼容配置存储后端) - 从任何 NetworkManager VPN 连接插件,如果正在使用任何 VPN 连接(VPN 可能会建议自己的 DNS 服务器,类似于 DHCP,但可能使用不同的协议来提供信息)
- 来自任何每用户网络配置设置(例如,在具有每用户 WiFi 配置的笔记本电脑上),使用用户选择的桌面环境提供的任何配置存储后端进行存储。例如,
dconf
对于现代 GNOME 3 使用~/.config/dconf/user
.
NetworkManager
然后可以将当前的 DNS 服务器地址集写入:
/etc/resolv.conf
如果resolvconf
没有安装包则直接进入- into
/etc/resolvconf/run/interface/NetworkManager
ifresolvconf
已安装(允许 NetworkManager-aware 和-unaware VPN 解决方案共存,只要两者都使用resolvconf
而不是直接修改/etc/resolv.conf
) systemd-resolved
或者如果正在使用它可能会直接配置。
如果resolvconf
正在使用,它将更新/etc/resolv.conf
和/或后者的配置(system-resolved
如果后者正在使用)。它还将运行任何脚本/etc/resolvconf/update.d
并/etc/resolvconf/update-libc.d
通知任何有兴趣了解系统范围 DNS 解析器设置何时更改并提供通知程序脚本的进程。
如果正在使用 IPv6 并且rdnssd
已安装守护程序,则还可以接收附加到 IPv6 路由器通告数据包的 IPv6 DNS 服务器信息(如果 IPv6 路由器管理员选择提供该信息)。根据发行版的不同,rdnssd
可能会默认直接使用resolvconf
或修改/etc/resolv.conf
。
如果你有足够新的 Mint 版本,它可能正在使用网络计划就像现代 Ubuntu 所做的那样,它为所有网络配置设置(包括 DNS 设置)添加了一种可能的来源:/etc/netplan/*.yaml
文件。
所以...是的,这相当复杂!