zoukankan      html  css  js  c++  java
  • centos7怎么永久修改hosname

     centos7怎么永久修改hosname

    其实,一般来说安装好虚拟机之后,一般都会进行修改hostname,之前也是在修改的时候,遇到过问题,但是没有深究,今天在修改的时候,好好研究了一下,之前看到好多网上的资料都在讲同时修改/etc/hosts和/etc/sysconfig/network,重启之后可生效,但是centos7,这样做确实不行,如下图:

     其实临时修改hosts的网上找一下一大堆,在这也就不再赘述,那永久应该怎么做呢?就是用这个命令hostnamectl set-hostname name ,重启后也不会失效。于是就在网上趴了一下。

    有篇文章介绍的比较好,有几个关键点:

    1、hostname是Linux系统下的一个内核参数,它保存在/proc/sys/kernel/hostname下,但是它的值是Linux启动时从rc.sysinit读取的。

    2、/etc/sysconfig/network 确实是hostname的配置文件,hostname的值跟该配置文件中的HOSTNAME有一定的关联关系,但是没有必然关系,hostname的值来自内核参数/proc/sys/kernel/hostname,如果我通过命令sysctl kernel.hostname=Test修改了内核参数,那么hostname就变为了Test了(重启后失效)。

    3、hostname跟/etc/hosts下的配置是没有关系的。hostname的修改、变更完全不依赖hosts文件。 其实hosts文件的作用相当如DNS,提供IP地址到hostname的对应。Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录。

    4、hostname也不是说跟/etc/hosts一点关系都没有。在/etc/rc.d/rc.sysinit中,有如下逻辑判断,当hostname为localhost后localhost.localdomain时,将会使用接口IP地址对应的hostname来重新设置系统的hostname。

    具体可参考http://www.cnblogs.com/kerrycode/p/3595724.html

    其实我是有个疑惑,就是同时修改/etc/hosts和/etc/sysconfig/network,改完之后我就没有管,前后重启过算是n多次,等到再看的时候,在命令行敲hostname,它确实是变了的,如下图:

     内核里面的也是修改了,但是用hostnamectl看的时候,它是transient,也就是短暂的,这是个比较疑惑的地方,欢迎有人指点一下。

  • 相关阅读:
    【Java】快速排序、归并排序、堆排序、基数排序实现总结
    【Java】二分查找、插值查找、斐波那契查找的实现,及分析
    【Java】Java实现常见的七种排序
    【C】常见的排序
    栈,迷宫问题
    海量数据处理问题
    【C】 布隆过滤器BloomFilter
    哈希变形---位图
    C实现Hash表,链式结构
    C实现Hash表,开放定址法
  • 原文地址:https://www.cnblogs.com/qstudy/p/9181040.html
Copyright © 2011-2022 走看看