关于修改主机名的疑问

kainme 2018-03-19 04:50:50
环境是Centos 7 主要涉及了三个文件

/etc/hosts

/etc/hostname

/etc/sysconfig/network


是这样的,最初的主机名是localhost.localdomain (与/etc/hostname里一致)。此时/etc/hosts里没有任何改动。

然后我修改了/etc/hosts 添加一行 “本机IP aaa” 重启过后 发现主机名变成了 aaa ,并且/etc/hostname 里没有变化

到这里我有个疑问(1)它是根据什么改变的主机名? 是通过分析hosts里这个IP就是本地IP,然后才将该IP所对应的映射名用作主机名的吗?

然后我将/etc/hostname 里的localhost.localdomain改成了bbb,重启发现 主机名变成bbb,然后我继续修改/etc/hosts文件。修改之前添加的一行

“本机IP aaa” 变为 “本机IP ccc” 但是我重启后发现 主机名还是bbb 。 此时我发现/etc/hosts已经没法改主机名了。(2)为什么之前/etc/hostname

里面是localhost.localdomain就可以生效呢?


最后我修改/etc/sysconfig/network 添加 hostname=ddd 但是我重启后发现主机名还是依据/etc/hostname (3)那么在Centos7下这个/etc/sysconfig/network

是不是没有了修改主机名的作用了?

(5)除了使用命令 hostname zzz 使主机名当时即可生效,还有没有其他方式类似于source 的方式通过读取参数文件使它立马生效的。


问题有点多,感谢大佬的帮助
...全文
512 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qwertyui1 2019-03-29
  • 打赏
  • 举报
回复
我用hostnamectl set-hostname 修改了主机名之后执行systemctl restart network会报错,楼主试过吗
kainme 2018-03-22
  • 打赏
  • 举报
回复
引用 3 楼 a905815661 的回复:
我刚测试了下,/etc/hosts并不会影响主机名啊。 /etc/hostname中的文件名是static主机名,实时生效,重启也生效。 hostname修改主机名修改的是transient名,是临时生效的。
看了你的博客,借着你的文章在回顾一遍
骏马金龙 2018-03-22
  • 打赏
  • 举报
回复
引用 5 楼 kainme 的回复:
[quote=引用 3 楼 a905815661 的回复:] 我刚测试了下,/etc/hosts并不会影响主机名啊。 /etc/hostname中的文件名是static主机名,实时生效,重启也生效。 hostname修改主机名修改的是transient名,是临时生效的。
看了你的博客,借着你的文章在回顾一遍[/quote] 哈,我也是看到你这个问题,查了下redhat的手册,然后测试了下再写的。
kainme 2018-03-21
  • 打赏
  • 举报
回复
引用 2 楼 a905815661 的回复:
CentOS 7两个和主机名有关的文件只有两个/etc/hosts和/etc/hostname,在CentOS 7中,主机名分3类:static(静态主机名)、pretty(好看、易读的主机名)和transient(短暂临时的)。其中: (1).static类的主机名就是我们常说的主机名,由/etc/hostname文件决定。 (2).transient类的主机名是内核动态维护的主机名,默认在系统启动的时候会根据静态主机名进行初始化。 (3).pretty类的主机名是给人看的,是以前版本(例如CentOS 6)没有的功能。它可以包含特殊符号,例如空格。例如将pretty名称命为"MaYun's Host",这种名称在以前的主机名(即static类主机名)里是不允许存在的。 当你改了static主机名,/etc/hosts里主机名和ip的映射关系是不会改变的,这样在重启的时候会很慢,因为要解析。最后开机成功时,按照你的测试结果(我没测试过),应该是根据解析结果决定最终主机名的。 如果你想搞清楚CentOS 7主机名是如何决定的,你可以用hostnamctl命令修改这3种主机名,并观察/etc/hostname文件的变化以及改改/etc/hosts如何影响主机名。
感谢,学习了,我试了试你说的使用 hostnamectl命令进行修改。pretty和static都没有问题,唯独问题出现在了transient上。 首先 我使用命令hostname bbb (此时我的静态主机名为aaa) 后 ,用hostname查看 反馈bbb,用hostnamectl查看 包含了transient name bbb 这里一切正常。 但是我使用hostnamectl命令修改 hostnamectl set-hostname"ccc" --transient 后 发现 在使用hostname命令查看,直接返回的是 aaa,但是在此之前临时的主机名是bbb (静态主机名)。而使用hostnamectl 命令 发现返回transient ccc(这里是正常的)。过了大概一分钟左右再次使用hostnamectl 命令发现transient name 消失了,很奇怪。 目前还没找到相关的说法,我在看看
骏马金龙 2018-03-20
  • 打赏
  • 举报
回复
我刚测试了下,/etc/hosts并不会影响主机名啊。 /etc/hostname中的文件名是static主机名,实时生效,重启也生效。 hostname修改主机名修改的是transient名,是临时生效的。
骏马金龙 2018-03-20
  • 打赏
  • 举报
回复
CentOS 7两个和主机名有关的文件只有两个/etc/hosts和/etc/hostname,在CentOS 7中,主机名分3类:static(静态主机名)、pretty(好看、易读的主机名)和transient(短暂临时的)。其中: (1).static类的主机名就是我们常说的主机名,由/etc/hostname文件决定。 (2).transient类的主机名是内核动态维护的主机名,默认在系统启动的时候会根据静态主机名进行初始化。 (3).pretty类的主机名是给人看的,是以前版本(例如CentOS 6)没有的功能。它可以包含特殊符号,例如空格。例如将pretty名称命为"MaYun's Host",这种名称在以前的主机名(即static类主机名)里是不允许存在的。 当你改了static主机名,/etc/hosts里主机名和ip的映射关系是不会改变的,这样在重启的时候会很慢,因为要解析。最后开机成功时,按照你的测试结果(我没测试过),应该是根据解析结果决定最终主机名的。 如果你想搞清楚CentOS 7主机名是如何决定的,你可以用hostnamctl命令修改这3种主机名,并观察/etc/hostname文件的变化以及改改/etc/hosts如何影响主机名。
aabbabababaa 2018-03-20
  • 打赏
  • 举报
回复
好像是先后顺序读取主机名吧,也不太深入了解过,来学习下。。。

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧