1、文件作用
hosts文件是"主机名静态查找文件"(The static table lookup for host name),主要完成主机名与IP地址、主机别名与IP地址的映射关系,在局域网没有DNS服务器的时候能够使主机识别其他的机器。不同的Unix/Linux版本该文件也有不同的命令,在Redhat/CentOS/Fedora中该文件是/etc/hosts,而在Debian/Ubuntu系列中是 /etc/hostname,其语法与功能大致相同,一下统一称为hosts文件。
2、文件配置方法
hosts文件的语法非常的简单,以行为单位,每一行作为一个IP与主机名、主机别名的映射,格式如下:
IP-Address Hostname [Aliases Hostname] # Comments
#之后的部分为本行的注释,系统将忽略。IP-Address与Hostname,以及Hostname与Aliases Hostname之间可以分割任意个空格 / 制表符。Hostname与Aliases Hostname必须有字母、数字以及'
-'和'
.'构成,而且必须以字母开始,以字母或者数字结尾。
例如:
127.0.0.1 localhost
10.15.62.70 CentOS-70 cluster1
10.15.62.71 CentOS-71
在局域网内,我们即可通过IP地址来访问该机器,也可以通过Hostname来进行访问。
3、主要解决的问题
1)局域网内不同主机直接相互识别的问题。在局域网中,特别是要进行相应的集群时,非常有必要将各个机器的IP与Hostname放在每一台机器上,这样会非常有利于集群的搭建;
2)在我们使用远程登录时,有些机器常常会会费很长的时间才能够成果连接,这也有可能是这个文件的原因。如果能够在被连接机器的hosts文件中预先的设置连接机器的IP和Hostname等信息,这样将会大大的提高连接的效率;
3)网络适配器(NIC、网卡)常常使用hosts文件作为NIC的数据源文件,尽管现在很多的NIC都是使用的DNS,但是在没有DNS服务器的情况下,配置hosts文件非常有必要。
4、hostname命令
hostname命令能够查看或者修改相应IP-Hostname的映射信息,而且搭配上不同的参数,还能够成为作为其他命令使用。hostname的用法如下:
hostname [-v] {hostname|-F file} set hostname (from file)
domainname [-v] {nisdomain|-F file} set NIS domainname (from file)
hostname [-v] [-d|-f|-s|-a|-i|-y|-A|-I] display formatted name
hostname [-v] display hostname
hostname -V|--version|-h|--help print info and exit
其中,应注意的是:
dnsdomainname = hostname -d
[yp|nis]domainname = hostname -y
hostname命令的全部参数如下:
-s, --short short host name
-a, --alias alias names
-i, --ip-address addresses for the hostname
-I, --all-ip-addresses all addresses for the host
-f, --fqdn, --long long host name (FQDN)
-A, --all-fqdns all long host names (FQDNs)
-d, --domain DNS domain name
-y, --yp, --nis NIS/YP domainname
-F, --file read hostname or NIS domainname from given file
5、其他
实践操作中,往往会遇到主机在局域网内找不到,或者是主机不可达的一些问题,而这些问题常常是由于两个方面造成的:第一个也就是这篇文章提到的hosts文件,而第二个这是防火墙,在遇到网络问题是应该先排除这两个问题。
===============================================
参考:http://linux.die.net/man/5/hosts
http://book.51cto.com/art/200801/64745.htm