下hosts文件详解
分类:微服架构

Linux 下hosts文件详解,

1、主机名:

无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。

公网:IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。

局域网:每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。

主机名相关的配置文件:/etc/hosts 

2、主机名配置文件:

主机名的配置文件大多是/etc/hosts 

hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过Hostname来访问。

例如:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

127.0.0.1   localhost.localdomain localhost

192.168.1.195  debian.localdomain debian

一般情况下hosts的内容关于主机名(Hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。

第一部份:网络IP地址。

第二部份:主机名.域名,注意主机名和域名之间有个半角的点。

第二部份:主机名(主机名别名) ,其实就是主机名。

当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian

 

 

再我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计Hostname;

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内容中,这样这三台局域网的机器就可以通过Hostname来访问了。

3、主机名(Hostname)和域名(Domain)的区别

主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子;

 

 显示主机名:

# Hostname

root1

此主机的主机名是root1,不加参数是用来显示当前操作的主机的主机名。

临时设置主机名:

我们可以用 Hostname 后接主机名,这样就可以设置当前操作的主机的主机名,比如我们想把主机名设置为root2;

# Hostname root2

root2

通过Hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;所以您想修改主机名,想一直有效的,还是用前面所说修改主机名配置文件 /etc/hosts;

显示主机IP:

[[email protected] ~]# Hostname -i

192.168.10.3

 

下hosts文件详解, 1、主机名: 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地...

   这里不讨论如何在linux上搭建一台DNS服务器:

hostname和/etc/hosts的区别

   这里讨论的是 配置 linux系统,让其能够解析域名,使用户可以流畅使用Internet

 

 

很多人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts。其实不是的。hosts文件的作用相当于DNS,提供IP地址hostname的对应。早期的互联网计算机少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应。Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。由此,/etc/hosts于设置hostname是没直接关系的,仅仅当你要在本机上用新的hostname来映射自己的IP时候才会用到/etc/hosts文件。两者没有必然的联系。redhat的hostname的配置文件是/etc/sysconfig/network.

         先了解几个文件,位于/etc目录下的有:hosts,host.conf,resolv.conf,named.boot,named.conf。
1、hosts文件:本地主机数据库数据库文件,定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。内容:
              IP地址         本机默认域名                   别名
             127.0.0.1    localhost.localdomain    localhost

   www.2cto.com  

2、host.conf”文件:解析器配置文件,在这个文件里 "order hosts bind"语句,指定了对主机名的解析顺序是先到hosts中查找,然后到dns服务器的记录里查找。“multi on”则是允许一个主机名对应多个ip地址。内容:

    /etc/hosts内容摘录如下:

  order hosts, bind

          # Do not remove the following line, or various programs

  multi on

          # that require network functionality will fail.

  nospoof on

          192.168.1.102   localhost.localdomain  localhost

3、resolv.conf”文件:DNS客户端配置文件“nameserver 10.0.0.211”指定了dns服务器的地址。注意,这个文件对普通非dns服务器的电脑(非windows的系统;Windows系统是在“网络属性”中设置这项的)来说,是必不可少的。你如果没有设置本机为dns服务器,你又要能够解析域名,就必须指定一个dns服务器的地址。你可以最多写上三个地址,作为前一个失败时的候选dns服务器。“domain zrs.com”指定默认的域。文件内容:

          127.0.0.1       localhost.localdomain  localhost

  domain 21php.com      (本机的域名后缀)

          ::1             localhost6.localdomain6 localhost6  

  nameserver 114.114.114.114
                nameserver 8.8.8.8

    对以上内容的解释

 

    作用:hosts 文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过hostname来访问。

我们可以修改dns服务器地址的方法

    格式:  www.2cto.com  

1.在终端输入 setup命令即可调出图形界面设置(配置信息会写入/etc/resolv.conf文件里面)

       一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。

2.编辑 vi /etc/resolv.conf 设置首选DNS和次要DNS  添加
nameserver 114.114.114.114
nameserver 8.8.8.8

     

3.通过编辑vi /etc/sysconfig/network-scripts 网卡下面的ifcfg-eth0 配置文件添加DNS服务器地址

       第一部份:网络IP地址;

添加
DNS1=114.114.114.114
DNS2=8.8.8.8

     

4.跟Windows系统一样,Linux系统也有主机表文件。同样可以通过设置主机表地址进行特定主机的解析,优先DNS服务器地址。配置文件,在/etc/hosts    这里要具体设置各个域名对应的ip(举例) 218.28.33.39     www.baidu.com
115.168.12.92   www.163.com

       第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain

 

     

hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。

       第二部份:主机名(主机名别名) ,其实就是主机名;

例如:

    注释:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

       1)127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。

127.0.0.1   localhost.localdomain localhost

       2)为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计hostname;  www.2cto.com  

192.168.1.195  debian.localdomain debian
        一般情况下hosts的内容关于主机名(Hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。

     

第一部份:网络IP地址

       127.0.0.1 localhost.localdomain localhost

第二部份:主机名.域名,注意主机名和域名之间有个半角的点。

     

第二部份:主机名(主机名别名) ,其实就是主机名。

       192.168.1.2 ftp

当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian

     

        再比如 我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计Hostname;

       192.168.1.3 mail.localdomain mail

127.0.0.1 localhost.localdomain localhost

     

192.168.1.2 ftp.localdomain ftp

       192.168.1.4 smb.localdomin smb

192.168.1.3 mail.localdomain mail

    把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过hostname来访问了。也就是,在局域网中,主机名也是可以解析到IP上的,相当于DNS域名解析。

192.168.1.4 smb.localdomin smb

    对于主机名的修改有两种方式:hostname和/etc/sysconfig/network

把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过Hostname来访问了。

   

 

[sql] 

比如文件中有这样的定义

[[email protected] ~]# hostname   

192.168.1.100 linumu100 test100

thin    www.2cto.com  

 

[[email protected] ~]# hostname think  

 

[[email protected] ~]# hostname  

假设192.168.1.100是一台网站服务器,在网页中输入

think  

 

 

 

    通过hostname 这个kernel变量来设置主机名只是临时的,下次重启系统时,此主机名将不会存在.hostname也可用于显示:hostname -i。如果要永久修改RedHat hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。  

总结:

很多人一提到更改hostname首先就想到修改/etc/hosts文件,认为hostname的配置文件就是/etc/hosts。其实不是的。hosts文件的...

Linux下设置DNS的位置主要是,

1网卡设置配置文件里面DNS服务器地址设置,2.系统默认DNS服务器地址设置。3,hosts文件指定

 

生效顺序是:

1 hosts文件 ---- 2 网卡配置文件DNS服务地址 ---3 /etc/resolv.conf

本文由10bet手机官网发布于微服架构,转载请注明出处:下hosts文件详解

上一篇:没有了 下一篇:批量重命名文件,解决方案
猜你喜欢
热门排行
精彩图文