转载自:https://www.betax.ml/2017/07/06/LinuxnoDHCP.html

前言

在修改这个 DNS 的过程中,我尝试去修改 /etc/resolv.conf 文件,但是每当机器重启, DNS 又会自动变为原来的那个很烂的 DNS ,经过一翻寻找,找到了官方的这篇文章。

正文

对于使用 DHCP 的用户来说,很多时候你需要修改 /etc/resolv.conf 来使用其他的 DNS 服务器。那么,经过了一段时间(或者是经过了机器重启)之后,你会发现你所修改的 /etc/resolv.conf 文件会被恢复为原来的样子。
以下教程讲述了 三个阻止DHCP 修改 /etc/resolv.conf文件的方法,适用于 Debian 或者是 Ubuntu。

1.把接口设置为静态

查看网卡接口信息:

ifconfig

现在我们已经有了IP/子网掩码/网关地址了,修改 /etc/network/interfaces 文件

# Comment out this line
# iface eth0 inet dhcp

# Add these contents
iface eth0 inet static
address 1.2.3.4
mask 255.255.254.0
gateway 1.2.3.1

保存并关闭,然后重启网卡 /etc/init.d/networking restart

2.写保护你的 DNS 服务器

通过修改 /etc/resolv.conf 来修改你的 DNS 服务器。一旦你作出了修改,写保护这个文件

chattr +i /etc/resolv.conf

这个+i的选项就是为文件 /etc/resolv.conf 添加了写保护,因此任何人都不可以修改他,甚至是 root 用户也不行! 如果你需要取消写保护,使用下面的命令:

chattr -i /etc/resolv.conf

3.使用 DHCP 钩子

这是我最推荐使用的方法。 修改 /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate 文件。
vim /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
作出以下修改:

#!/bin/sh
make_resolv_conf(){
    :
}

保存并退出 给文件 nodnsupdate 添加可执行权限

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

重启系统,现在你就可以任性地修改 /etc/resolv.conf 文件而且不会担心被回滚了。

最后修改:2018 年 11 月 30 日
如果觉得我的文章对你有用,请随意赞赏