记录下hostname和/etc/hosts的学习笔记。
测试用的是centos,版本信息为3.10.0-514.el7.x86_64
hostname是什么
Hostname is a kernel parameter which stores hostname of the system. Its location is”/proc/sys/kernel/hostname” The value for this parameter is loaded to kernel by rc.sysinit file during the boot process.
上面这段话有几个点
- hostname真实值是
/proc/sys/kernel/hostname
- rc.sysinit负责加载
在之前的版本中,通常是修改/etc/sysconfig/network
中的HOSTNAME
来实现hostname修改,但是在centos7中,需要修改/etc/hostname
。
注意,上述的两种方式,都是reboot后才生效的。
hosts是什么
- 主机在查询域名映射的 IP 时,最先查询的地方。记录了主机域名与其 IP 之间的映射关系
格式为
IP地址 主机或者域名 [主机的别名] [主机的别名]....
,例如1127.0.0.1 localhost localhost.localdomain
更多的信息参考wiki)。
几个常见的问题
- 如果想修改hostname,如何修改?
- 修改hosts为何会对hostname有影响
如果想修改hostname,如何修改?
- 前文提到的,修改
/etc/hostname
,并且重启 sysctl kernel.hostname = toutoudnf
- 即可生效(
hostname
可查询到) - 重启会丢失(重新读取
/etc/hostname
中的值)
- 即可生效(
hostnamectl set-hostname toutoudnf
- 即可生效(
hostname
可查询到) - 重启不会丢失(修改了
/etc/hostname
中的值)
- 即可生效(
hostname toutoudnf
- 即可生效(
hostname
可查询到) - 重启会丢失(重新读取
/etc/hostname
中的值)
- 即可生效(
echo toutoudnf > /proc/sys/kernel/hostname
- 即可生效(
hostname
可查询到) - 重启会丢失(重新读取
/etc/hostname
中的值)
- 即可生效(
但是建议在centos7中,还是通过hostnamectl
来修改。详情可以参考:redhat7 Networking_Guide
修改hosts对hostname的影响
待补充。在较早的版本中貌似是有影响的,参考的是文章戳这里