防止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
  3. 设置文件锁
    1
    sudo chattr +i /etc/resolv.conf
  4. 再次修改/etc/resolv.conf必须先解锁,命令为
    1
    sudo chattr -i /etc/resolv.conf

参考文章