|簡體中文

比思論壇

 找回密碼
 按這成為會員
搜索



查看: 1044|回復: 0
打印 上一主題 下一主題

hostname和/etc/hosts的区别

[複製鏈接]

989

主題

1

好友

5296

積分

教授

Rank: 8Rank: 8

  • TA的每日心情

    2024-11-3 15:50
  • 簽到天數: 1258 天

    [LV.10]以壇為家III

    推廣值
    2
    貢獻值
    378
    金錢
    1528
    威望
    5296
    主題
    989

    回文勇士 文明人 中學生 高中生 簽到勳章 簽到達人 男生勳章 大學生 文章勇士 附件高人 附件達人 文章達人 教授

    樓主
    發表於 2012-9-18 18:30:58
    hostname和/etc/hosts的区别



    很多人一提到更改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内容摘录如下:

              # Do not remove the following line, or various programs

              # that require network functionality will fail.

              192.168.1.102   localhost.localdomain  localhost

              127.0.0.1       localhost.localdomain  localhost

              ::1             localhost6.localdomain6 localhost6
      

        对以上内容的解释

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

        格式:  

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

         

           第一部份:网络IP地址;

         

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

         

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

        注释:

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

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

         

           127.0.0.1 localhost.localdomain localhost

         

           192.168.1.2 ftp

         

           192.168.1.3 mail.localdomain mail

         

           192.168.1.4 smb.localdomin smb

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

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

       

    [sql]

    [root@think ~]# hostname   

    thin   

    [root@think ~]# hostname think  

    [root@think ~]# hostname  

    think  



        通过hostname 这个kernel变量来设置主机名只是临时的,下次重启系统时,此主机名将不会存在.hostname也可用于显示:hostname -i。如果要永久修改RedHat hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
    重要聲明:本論壇是以即時上載留言的方式運作,比思論壇對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,讀者及用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,讀者及用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本論壇受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者及用戶發現有留言出現問題,請聯絡我們比思論壇有權刪除任何留言及拒絕任何人士上載留言 (刪除前或不會作事先警告及通知 ),同時亦有不刪除留言的權利,如有任何爭議,管理員擁有最終的詮釋權。用戶切勿撰寫粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。

    手機版| 廣告聯繫

    GMT+8, 2024-11-14 18:00 , Processed in 0.017048 second(s), 27 queries , Gzip On.

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回頂部