Linux操作系统的hostname是一个kernel变量,查看hostname:
# hostname
或:
# cat /proc/sys/kernel/hostname
1 或:
# sysctl kernel.hostname
此文件(/proc/sys/kernel/hostname)为系统保护,不可随便用VIM更改。可用下文方法改。
临时修改hostname
# hostname newname
newname即要设置的新的hostname,运行后立即生效,但在系统重启后会丢失所做的修改。
或:
修改后立即生效,但重启后会丢失所作更改。
或:
[root@Server0 ~]# sysctl kernel.hostname=Test2
kernel.hostname = Test2
同样能立即生效,但重启后会丢失所作更改。
永久修改hostname
永久更改系统的hostname需要要修改相关的设置文件,基于Debian和基于Redhat的发行版方法可能不同,可选择不同的方法。
1. 将配置文件/etc/hostname的内容改为NEWNAME即可
其中NEWNAME就是要设置的hostname。
修该配置文件后,重启系统就会读取配置文件设置新的hostname。
2. 通过nmtui命令:
上图,另外:原/etc/hostname文件不存在,通过nmtui修改hostname后,会自动生成此文件。
3. 修改/etc/sysconfig/network文件
将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是要设置的hostname。但并不会立即生效,配合hostnamenewname 命令使其立即永久生效。(从前面一个图可以看到,那红帽7两个系统根本没有在这里面设置hostname值。可见这个并非关键,可以不需要!)
hostname跟/etc/hosts 下配置有关系吗?
/etc/hosts与设置hostname是没直接关系的,仅仅当要在本机上用新的hostname来访问自己的时候才会用到/etc/hosts文件,两者没有必然的联系。
hostname的修改、变更完全不依赖hosts文件。其实hosts文件的作用相当如DNS,提供IP地址到hostname的对应。早期的互联网计算机数量少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统。由DNS服务器来提供类似的IP地址到域名的对应。具体可以manhosts查看相关信息。
其实hostname也不是说跟/etc/hosts一点关系都没有。详情可点这里:https://www.jb51.net/article/99897.htm