Linux的hostname详细说明

来源:互联网 发布:传世引擎源码 编辑:程序博客网 时间:2024/05/16 08:02

  参考文章:http://www.cnblogs.com/kerrycode/p/3595724.html
  上文以原理的方式直接写出了hostname的来龙去脉,想深入的可以看看,本文在上文的基础上直奔结果,想快捷确认hostname的情况的可直接参考此文,本文从以下3点明确hostname的定义。
 

1.到底如何彻底(永久性)修改hostname?


   在linux系统上执行hostname取到的值是和系统内核的值是保持一致的,换句话说执行hostname,取的是/proc/sys/kernel/hostname的值,而这个值是Linux启动时从rc.sysinit读取的,而/etc/rc.d/rc.sysinit中HOSTNAME的取值又是从/etc/sysconfig/network下读取的,所以hostname的真实值的的确确是在/etc/sysconfig/network下配置的,但是配置完了不一定立即生效,要让它立即生效有好几种方式:
  (1)重启系统
  (2)hostname [hostname](此值和network中的值一样)
  (3)echo [hostname] > /proc/sys/kernel/hostname
  所以本质上讲,真正的修改hostname还是应该修改/etc/sysconfig/network下的值的,只是在不想重启的情况下让其立即生效可以借助后面两种方式,而后两种方式也可用于临时修改hostname,但是系统重启后最终还是会变更成/etc/sysconfig/network下的hostname值。
  

2.hostname与/etc/hosts什么联系?


  hosts文件的作用相当如DNS,提供IP地址到hostname的对应。早期的互联网计算机数量少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应,Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。
  这么看来hosts其实和hostname并无太大关系,仅仅当你要在本机上用新的hostname来访问自己的时候才会要配置/etc/hosts文件。但是需要注意一点的是:就是在系统启动时读取/etc/rc.d/rc.sysinit中的hostname值时,当hostname为localhost或者localhost.localdomain时,将会使用接口IP地址对应的hostname来重新设置系统的hostname。
  

3.hostname -f 与 hostname的关系?


  文件/etc/hosts中的文件格式是一行一条记录,分别是IP地址 、hostname、 aliases,三者用空白字符分隔,aliases可选。由于hosts文件的作用相当如DNS,一般习惯性在这里会在真实hostname后配个域名,而后面的别名其实为机器真实的hostname。因而hostname -f取得就是这里的带有域名的hostname值,当然如果这里配的是短域名(即真实的hostname),那么执行hostname -f会取得这个短域名。

1 0
原创粉丝点击