最近装了dnsmasq来缓存请求和过滤广告,但一直没有生效,一直以为是dnsmasq的配置有问题,结果发现系统根本就没有使用dnsmasq作为DNS服务器。
具体来说,每次系统重启,/etc/resolv.conf这个文件就会被覆盖。

在网上翻到解决方法都大同小异,或者让你装一个叫resolvconf的工具,或者修改/etc/systemd下的resolved.conf文件。
这两种方法似乎并没有效果,重启后resolv.conf还是恢复了。

突然想到chattr的修改文件属性后,root用户都不能直接更改,不妨试试能不能用chattr“锁住”resolv.conf
修改好文件,禁止文件写的命令如下

1
chattr +i /etc/resolv.conf

重启发现文件并没有自动恢复,成功了!

附:恢复文件可写

1
chattr -i /etc/resolv.conf

安卓上也可以使用chattr命令防止应用创建广告文件