IP和域名如何理解呢?每台服务器都有一个IP地址,可以很好的区分开每台主机。IP地址可以看做是服务器的门牌号,但是IP地址是一组数字不好记忆,所以有了域名,域名是在公网才存在,也具有唯一性。每个域名都有一个唯一IP地址与之对于,而一个IP地址可以有多个域名。
域名和主机名区别是什么?而在局域网中,每台机器都有一个主机名,是用于区分主机和主机之间。如在局域网中一般会根据每台机器的公用来命名。域名和主机名区别在于所适用场景不一样,域名一般在互联网上使用,但是优先级会低于hosts文件中的内容。如本机上不行被互联网上域名解析,可通过更改/tec/hosts文件,加入自己的域名解析。而主机名是在局域网内使用,用hosts文件,主机名可以解析到对应IP。
hosts是一种系统文件,配置了IP地址和域名(或是主机名、主机别名)的映射关系。主要作用是建立双方计算机系统的通信依据,作为域名和IP地址解析的凭证,且存储了映射关系。
访问一个网站时,系统会先在hosts文件中寻找,查询是否有需要的域名和IP映射关系,如存在就先通过IP地址寻找服务器,如果没有找到就通过访问DNS服务器来获取域名所对应的IP地址,再去寻找服务器。可以看出优先级:dns缓存 > hosts > dns服务。
hosts在Linux中存在:/etc/hosts。在Windows系统中hosts文件存在C:\Windows\System32\drivers\etc\hosts。
实际应用中hosts可以加快域名解析、屏蔽网站、双机互连等。如对于经常访问的网站,在hosts中配置域名和IP映射关系,能更快解析出IP,不需要请求网络上的DNS服务器;还可以屏蔽网站,把一些不友好的网站域名映射到错误IP或自己计算机的IP,这样可以屏蔽该网站:
127.0.0.1 屏蔽的网站
0.0.0.0 屏蔽的网站
双机互连,是这两台服务器都需要设置IP,在对方的hosts文件中加入自己的IP和主机名。hosts文件格式为:
IP地址 主机名或域名 [主机的别名] [主机的别名]....
即:
IP地址 域名
IP地址 规范的主机名 [主机的别名] [主机的别名]....
功能是实现主机名或域名解析到IP。
需要注意条目的字段由任意数量的空格或制表符分隔;从“#”字符开始直到行尾的文本都是注释,会被忽略;主机名只能包含字母数字字符、减号(“-”)、和点(“.”)。它们必须以字母字符开头,以字母数字字符结尾;可选别名提供名称更改、替代拼写、更短的主机名或通用主机名(例如,localhost)。
在Linux中如果想看hosts文件说明:
man hosts
例如,如果您想将域名 www.example.com 映射到 IP 地址 192.168.0.3,您可以将以下行添加到您的 /etc/host 文件
192.168.0.3 www.example.com
添加后,服务器会在用户尝试访问www.example.com时解析为192.168.0.3。
如比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计主机名:
127.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样3台局域网的机器就可以通过hostname来访问了。
要注意/etc/hostname 存放主机名,/etc/hosts 存放域名与ip的对应关系。