DNS
(Domain Name System
,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库, 能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS协议运行在UDP协议之上,使用端口号53。
RFC 2181对DNS有规范说明。
RFC 2136对DNS的动态更新进行说明。
RFC 2308对DNS查询的反向缓存进行说明。
NDS
是分级的。
发起一个网络请求的时候,操作系统首先读取hosts
文件。不同的操作系统,此文件的位置不同。
Windows
系统的hosts
文件位置为:%SystemRoot%\system32\drivers\etc\hosts
, 一般来说也就是C:\WINDOWS\system32\drivers\etc\hosts
。
Windows
上的hosts
文件的一般格式如下:
# copyright (c) 1993-1999 microsoft corp.
#
# this is a sample hosts file used by microsoft tcp/ip for windows.
#
# this file contains the mappings of ip addresses to host names. each
# entry should be kept on an individual line. the ip address should
# be placed in the first column followed by the corresponding host name.
# the ip address and the host name should be separated by at least one
# space.
#
# additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# for example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
Unix
和Unix-like
系统的hosts
文件位置为:/etc/hosts
。
Unix
和Unix-like
系统的hosts
文件的一般格式如下:
127.0.0.1 localhost
127.0.1.1 ubuntu-64-bit
74.125.237.1 dl-ssl.google.com
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
在此文件修改后需要重启网卡,使用如下命令:
/etc/rc.d/init.d/network restart
hosts
文件其实是一个纯文本文件,它里面包含了IP地址和Host name(主机名)的映射关系。
以#开头的文字都是注释用。
127.0.0.1 localhost
这一行就是表示把localhost解析到127.0.0.1这个IP地址上。需要强制解析的域名则按127.0.0.1 localhost这一行的格式添加,一行一个。
发起一个网络请求的时候,操作系统首先读取hosts
文件。 如果此文件中配置了主机名(域名)和IP的映射关系,就直接使用此IP地址,如果没有这个配置,就去访问DNS服务器,从DNS服务器得到对应的IP地址。
自己修改hosts
文件,目的是跳过DNS服务器。可以起到加快网站域名解析、方便局域网用户、屏蔽网站等作用。
要是对于每个请求,我们都要等待DNS解析后返回IP信息,这样访问网络的效率就会降低, 如果我们事先将IP地址和主机名的映射关系保存在hosts文件中,就能提高解析效率。
在进行DNS请求以前,会先检查自己的hosts文件中是否有这个地址映射关系,如果有则调用这个IP地址映射,如果没有才向已知的DNS服务器提出域名解析。 即hosts的请求级别比DNS高。
一般来说,有以下几种情况需要或会改动hosts文件:
hosts
文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。 某些时候DNS服务器不能访问,导致不能使用名字访问只能通过IP地址访问,此时可以在hosts文件中增加对应IP地址和主机名,就仍然可以使用主机名来访问。