防止resolve文件被自动修改

通过dnsmasq 实现了本地 DNS 服务的功能,这大大加速的域名解析速度。但是最近在连接校园网时,发现每次连网配置文件/etc/resolv.conf都会被修改为校园网默认的配置,但是这样就无法设置为自动dnsmasq接管服务。

具体原因

当在eth接口启用DHCP后,本地resolv.conf文件将被修改,resolv.conf文件中的DNS地址将被改为从DHCP获取到的地址。这种从DHCP获得的DNS即是Peer DNS 启用DHCP后即便修改/etc/resolv.conf,不久又恢复成原样.

解决方法

  1. 断开网络
  2. 将/etc/resolv.conf修改为
1
2
3
4
5
# Generated by syndns
nameserver 127.0.0.1
nameserver 119.29.29.29
nameserver 180.76.76.76
nameserver 1.2.4.8
  1. 设置文件锁
1
sudo chattr +i /etc/resolv.conf
  1. 再次修改/etc/resolv.conf必须先解锁,命令为
1
sudo chattr -i /etc/resolv.conf

参考文章