简介
有时候会遇到使用网络命令会报错can,t find
,比如nslookup www.baidu.com
。原因之一就是无法解析到域名的IP地址,这极有可能是系统的dns配置有问题。如果是使用VMware虚拟机的话,会经常遇到这个问题。解决方法有两种:
- 将虚拟机网络适配器改成桥接模式
- 配置系统的dns
详解
配置dns的方法有三种:网卡配置、resolv.conf文件、hosts文件
网卡配置
- ifconfig查看网卡序号,一般为eth0
- 编辑vi /etc/sysconfig/network-scripts 网卡下面的ifcfg-eth0 配置文件添加DNS服务器地址
我经常使用kali系统(基于Ubuntu),没有这个/etc/sysconfig/目录。
resolv.conf文件
- 编辑 vim /etc/resolv.conf 文件
- 末行添加 nameserver dns服务器地址,我写的宿主主机地址
文件配置讲解
nameserver
表示解析域名时用该地址指定的主机为域名服务器,其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver。nameserver至少指定一个,不然就会找不到dns服务器。
domain
声明主机的域名。很多程序用到它,如邮件系统。
search
它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。
sortlist
参数为网络/掩码对,允许将得到域名结果进行特定的排序。
domain和search同时存在。如果同时存在,则要指定sortlist。
hosts文件
- 编辑 vim /etc/hosts 文件
- 添加解析记录,看下图
第一列是IP地址,第二列是域名,其中127.0.0.1的解析记录有两条。后三行是ipv6地址。
可见,这个文件是自己添加解析记录,而不是配置dns服务器地址。
host.conf文件
这个文件的目录是/etc/host.conf。内容如下:multi
表示是否允许/etc/hosts文件允许主机指定多个IP地址。on允许,off不允许。
优先级
系统会优先其中一种方式进行dns解析,如果没有成功才会使用下一种方式dns解析,首先查询hosts文件。hosts文件 > 网卡配置 > resolve.conf文件