先介绍/etc/hosts
- hosts文件是linux系统中负责ip地址与域名快速解析的文件
- 以ASCII格式保存在/etc目录下
- 文件名为hosts(不同的linux版本,文件也可能不同,比如Debian的对应文件是/etc/hostname。)
- hosts文件包含了ip地址和主机名之间的映射,包括主机名的别名(在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用DNS服务程序来解决。)
- 通常可以将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问
- 优先级:dns缓存>hosts>dns服务
读完上面六点,大概对hosts文件有个大概的了解了吧?
然后再介绍hosts文件起的作用,解决的问题
远程登录linux主机过慢问题
有时客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长一段时间才会进入,这是因为linux主机在返回信息时需要解析ip,如果在linux主机的hosts文件事先加入客户端的ip地址,这时再从客户端远程登录linux就会变很快。
当然!这里所说的远程登录不仅仅是ssh登录,还可以是mysql远程登录,或是文件共享的查询等。
最后介绍hosts的配置方法
别名可以选择填写,不一定需要填。
ip 主机名 [别名]
例子:
192.168.120.22 Master
192.168.120.21 Node1
第二部分是介绍/etc/resolv.conf
背景故事:
我们是否有过这样的经历:在用浏览器上网的时候上不去,而qq就可以登上去。为什么?dns出了问题,其中之一的办法就是可以通过配置/etc/resolv.conf来解决这个问题。
是什么?
/etc/resolv.conf它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件。
有什么作用?
-
可以提供DNS服务器域名和IP地址,帮助解析
-
search选项可以补全短域名
怎么用?
假如resolv.conf没有任何配置,你可能是这样的状态:
-
假如resolv.conf没有任何配置并且网络没有配置DNS,你可能是这样的状态:
[root@nick ~]# ping www.baidu.com
ping: unknown host www.baidu.com
连不通外网!!!
我们可以往里面加一个域名服务器
格式:
nameserver 114.114.114.114
-
search的用法
有的resolv.cof里面有配置search,他的作用是补全域名。
配置之前:
配置之后:
我在这边故意配置三个hahaaaa.com 、baidu.com和qq.com
为什么他解析的是www.baidu.com呢?
第一:search是从左到右解析的,直到解析成功
所以顺序是hahaaaa.com->baidu.com->qq.com。
第二:因为hahaaaa.com是无效域名,所以解析到baidu.com就终止尝试了。
总结一点:
DNS解析的步骤:
1. 查找/etc/hosts
2. 根据nameserver查找域名
3. 如果在nameserver查找不到域名就进行search补全,重新走1~2步
DNS解析的步骤:
1. 查找/etc/hosts
2. 根据nameserver查找域名
3. 如果在nameserver查找不到域名就进行search补全,重新走1~2步