修改centos等linux的hostname-永久生效

步骤

uname -a (或者hostname)可以看到hostname,修改步骤如下:

uname -a 查看hostname

hostname newname 修改下,让hostname立刻生效。

vi /etc/hosts 修改原hostname为 newname

vi /etc/sysconfig/network 修改原hostname为

newname , reboot重启后也生效

reboot重启,uname -a 重新检查下。Done!

解析

临时生效

Linux操作系统的 hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。

[root@entel2 ~]# hostname

entel2

1

2

也可以直接cat /proc/sys/kernel/hostname查看。

[root@entel2 ~]# cat /proc/sys/kernel/hostname

entel2

1

2

#hostname

#cat /proc/sys/kernel/hostname

1

2

上面两种输出结果相同。

修改运行时Linux系统的hostname,即不需要重启系统

hostname命令可以设置系统的hostname

#hostname newname

1

newname即要设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。

永久更改Linux的hostname

man hostname里有这么一句话,

The host name is usually set once at system startup in

/etc/rc.d/rc.inet1 or /etc/init.d/boot (normally by reading the

contents of a file which contains the host name, e.g. /etc/hostname).”

RedHat里没有这个文件,而是由/etc/rc.d/rc.sysinit这个脚本负责设置系统的hostname,它读取/etc/sysconfig/network这个文本文件,RedHat的hostname就是在这个文件里设置。

所以,如果要永久修改RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成 HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。

Debian发行版的hostname的配置文件是/etc/hostname。

修该配置文件后,重启系统就会读取配置文件设置新的hostname。

hostname与/etc/hosts的关系

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

hosts文件的作用相当如DNS,提供IP地址到hostname的对应。