我希望我较新的 GNU/Linux 系统 (Ubuntu 18.04 LTS) 对所有DNS 查询使用单个手动配置的 DNS 服务器。在过去,我可以简单echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
地破坏/etc/resolv.conf
文件并为我的整个系统持久设置 DNS 服务器的 IP 地址。
在这个(以及许多较新的 GNU/Linux 发行版)上,/etc/resolv.conf
由resolvconf(8)
实用程序管理。在 Ubuntu 18.04 上,此文件包含如下一行:
nameserver 127.0.0.53
Run Code Online (Sandbox Code Playgroud)
从 中可以看出sudo ss --listening --numeric --processes
,本地系统的systemd-resolved
DNS 存根解析器绑定到此 IP 地址,并在端口53
上侦听传入的 DNS 请求。因此,文件中的上述nameserver
行通过“正常”DNS 请求/etc/resolv.conf
将所有不使用systemd-resolved
D-Bus 或 glibc API 的应用程序定向到systemd-resolved
服务。
这一切都很好,但这一切都意味着我不能再简单地将持久更改写入/etc/resolv.conf
文件以影响名称服务器更改。