谁动了我的 DNS 解析?

以前经常遇到 /etc/resolv.conf 被Network Manager 覆盖,最暴力的解决方式是用chattr 锁定这个文件。

这样做并没有搞清楚Linux的DNS优先级,对于复杂场景也解决不了问题。这个问题本质上是Network Manager,systemd-resolved等每个工具都有额外的策略并试图修改DNS解析配置。

大部分程序做 DNS 解析实际上是调用 glibc 里面 getaddrinfo 这个 API,所以在它后面我们就可以做一些工作。一个叫做 Name Service Switch 的东西发明出来就是干这个的,它是基于插件的,我们可以通过阅读 /etc/nsswitch.conf 里面的 hosts 这一行来理解。

source:
https://sh.alynx.one/posts/Who-Moved-My-DNS-Resolving-Remastered/
 
 
Back to Top