Linux DNS /etc/resolv.conf 详解
Linux DNS /etc/resolv.conf 详解
叙述
/etc/resolv.conf是DNS客户机的配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。它的格式比较简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数。
resolv.conf的关键字主要有4个,分别为:
- nameserver:定义DNS服务器的IP地址
- domain:定义本地域名
- search:定义域名的搜索列表
- sortlist:对返回的域名进行排序
注意:这里最主要的就是nameserver关键字,如果没有指定nameserver就找不到DNS服务,其它关键字是可选的。
参数解释
- nameserver
表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。 - domain
声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。 - search
它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。domain和search不能共存;如果同时存在,后面出现的将会被使用。 - sortlist
允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
列子
cat /etc/resolv.conf
domain 51osos.com
search www.51osos.com 51osos.com
nameserver 202.102.192.68
nameserver 202.102.192.69
1)nameserver:表示域名解析时,使用该地址指定的主机为域名服务器,其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver。
2)domain:声明主机的域名,很多程序会用到,如邮件系统。当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容。
3)search:它的多个参数指明域名查询顺序,当要查询没有域名的主机,主机将在由search声明的域中分别查找。
注意:search和domain不能共存,如果同时存在,后面出现的将会被使用。
4)sortlist:运行将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
"search domainname.com"表示当提供了一个不包含完全域名的主机名时,在该主机名后添加domainname.com的后缀;"nameserver"表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。其中domain和search可以同时存在,也可以只有一个,nameserver可以指定多个。
问题
问题描述:CentOS 修改/etc/resolv.conf 执行 service network restart 后,/etc/resolv.conf 又恢复到原来的状态
解决方法:/etc/resolv.conf 保存 DNS 是暂时的,当重新启动 network 时,/etc/resolv.conf 恢复到了初始状态,要想更改,可尝试下边的方法。
修改 /etc/sysconfig/network-scripts/ifcfg-eth0
在其中的加入你要添加的DNS,如下图
之后保存退出。
CentOS 8 以下执行 service network restart 命令重启网络;
CentOS 8 可以使用以下命令重启:
systemctl restart NetworkManager.service 或 nmcli networking off && nmcli networking on
此方法会在 /etc/resolv.conf 中自动添加你刚才在 ifcfg-eth0 中添加的 DNS 信息(如下图),且重启仍有效。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)