RHEL安装需要完成的几件事(二)主机名

Linux主机名

在RHEL或CentOS中,有三种定义的主机名:
  • 静态的(static)

  • 瞬态的(transient)

  • 灵活的(pretty)

首次看到RHEL文档,提到有3个主机名时,确实也是觉得很奇怪,还好这些定义对于日常工作中影响不大,仅作为了解即可,后面会根据实际使用环境中与主机名相关的注意项罗列出来。

说起主机名,hostname,这是个命令,基本类-UNIX系统都通用这个命令。下面hostname命令基本描述:

The hostname command displays or temporarily modifies the system's fully qualified host name.

fully qualified host name=fully qualified domain name FQDN (fully qualified domain name,完全限定域名) 例如:desktop2.example.com(全域名是主机名的一种完全表示形式。主机名+域名)

上面的名字,对于我们(中国用户)感觉有点陌生。觉得主机名就是标示该主机的名字,需要这么麻烦吗?那是因为在internet 外网的ipv4地址,老外家里可以上网基本就能分到一个固定的外网地址,通过主机名就可以实现通信了。到了中国,ipv4的外网地址,只有企业或事运营商才有,即使我们所获得的也是动态随机分配的,与个人的电脑无法建立关联关系。

以上介绍,仅让大家了解FQDN这个名词信息而已,也不用深究。

下文中主机名,就指的是完全想定域名主机名。

hostname命令,显示或临时修改主机名。为什么是临时修改?

通过下面的一系列命令实验,查询其结果。

命令hostname更改主机名:

## 系统原始配置(主机名相关)
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/hostname
localhost.localdomain
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: d638575158a8499196d8f245cabe00c6
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl --transient
localhost.localdomain
[root@localhost ~]# hostnamectl --pretty

## 使用hostname命令更改主机名
[root@localhost ~]# hostname desktop2.example.com
[root@localhost ~]# hostname
desktop2.example.com
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/hostname
desktop2.example.com                  ##内核主机名改变
[root@localhost ~]# hostnamectl --static
localhost.localdomain
[root@localhost ~]# hostnamectl --transient
desktop2.example.com                  ##瞬时主机名改变
[root@localhost ~]# hostnamectl --pretty

[root@localhost ~]# exit
[root@desktop2 ~]#                    ##重新登录,提示符(主机名)发生变化,也说明修改主机名系统已经可用
[root@desktop2 ~]# reboot
...
...
[root@localhost ~]#                   ##重启系统后
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/hostname 
localhost.localdomain
[root@localhost ~]# hostnamectl --static
localhost.localdomain
[root@localhost ~]# hostnamectl --transient
localhost.localdomain
[root@localhost ~]# hostnamectl --pretty

[root@localhost ~]#                    ##重启后,一切恢复到更改前localhost.localdomain
## 总结:
## 1、命令hostname修改的主机名,不会自动修改/etc/hostname文件
## 2、内核会自动识别和生效
## 3、系统重启后,会恢复更改前的配置

命令hostnamectl更改static主机名:

[root@localhost ~]# hostnamectl 
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: f3195a3339d342c3b5a7c88d82952766
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl set-hostname desktop2.example.com
[root@localhost ~]# hostnamectl 
   Static hostname: desktop2.example.com
[root@localhost ~]# hostnamectl --transient
desktop2.example.com
[root@localhost ~]# hostnamectl --pretty

[root@localhost ~]# hostname
desktop2.example.com
[root@localhost ~]# cat /etc/hostname
desktop2.example.com
[root@localhost ~]# cat /proc/sys/kernel/hostname
desktop2.example.com
[root@desktop2 ~]#          ##再次登录提示符改变(主机名)
## 总结:
## 1、命令hostnamectl set-hostname不指定类型(静态/瞬时/灵活),默认会全部修改。
##    也可以直接指定只修改static主机名hostnamectl --static set-hostname desktop2.example.com
## 2、使用命令hostnamectl更改静态主机名,会自动更改/etc/hostname文件
## 3、内核会自动识别并生效新的static主机名

命令hostnamectl更改transient主机名:

[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: f3195a3339d342c3b5a7c88d82952766
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl --transient
localhost.localdomain
[root@localhost ~]# hostnamectl --pretty

[root@localhost ~]# hostnamectl --transient set-hostname desktop3.example.com
[root@localhost ~]# hostnamectl --transient
desktop3.example.com
[root@localhost ~]# hostname
desktop3.example.com
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/hostname 
desktop3.example.com
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
Transient hostname: desktop3.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: f3195a3339d342c3b5a7c88d82952766
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@desktop3 ~]#               ## 再次登录后提示符改变(主机名)
[root@desktop3 ~]# reboot
...
...
[root@localhost ~]#              
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: 896db1db34e1479992b235da2b6a84a4
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl --transient
localhost.localdomain
## 总结:
## 1、使用命令hostnamectl修改transient主机名,内核会自动感知
## 2、/etc/hostname文件不会更新,也印证此文件存储的是static主机名
## 3、瞬时主机名更改后,系统重启会自动还原到该更改前的主机名。

命令hostnamectl显示解释:

[root@localhost ~]# hostnamectl --transient set-hostname desktop3.example.com
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
Transient hostname: desktop3.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: 896db1db34e1479992b235da2b6a84a4
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl --pretty set-hostname server2.example.com          
[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
   Pretty hostname: server2.example.com
Transient hostname: desktop3.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: 896db1db34e1479992b235da2b6a84a4
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl set-hostname desktop2.example.com
[root@localhost ~]# hostnamectl
   Static hostname: desktop2.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: 896db1db34e1479992b235da2b6a84a4
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostnamectl --transient
desktop2.example.com
[root@localhost ~]# hostnamectl --pretty

[root@localhost ~]# 
## 总结:
## 1、单独更改了transient主机名,执行hostnamectl会自动显示(当static与transient不一样时,命令会自动显示)
## 2、更改了pretty主机名后,执行hostnamectl会自动显示
## 3、如果static与transient主机名一致,那么hostnamectl命令只显示static主机名
## 4、命令hostnamectl set-hostname不指定类型(静态/瞬时/灵活),默认会全部修改。
##    可能是vmware虚拟的系统,pretty默认为空,修改后还是空。

修改/etc/hostname文件配置,更改主机名:

## 直接修改/etc/hostname文件
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# echo "desktop5.example.com" >/etc/hostname
[root@localhost ~]# cat /etc/hostname
desktop5.example.com
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# cat /proc/sys/kernel/hostname
localhost.localdomain
[root@localhost ~]# hostnamectl
   Static hostname: desktop5.example.com
Transient hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 75fddfea32b14adebc09019d7d72135a
           Boot ID: 896db1db34e1479992b235da2b6a84a4
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.3 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.3:GA:server
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[root@localhost ~]# hostname         
desktop5.example.com
[root@localhost ~]# cat /proc/sys/kernel/hostname
desktop5.example.com
[root@desktop5 ~]#         ##重新登录,提示符改变(主机名)

## 总结:
## 1、直接修改/etc/hostname内容,内核无法直接识别
## 2、使用hostnamectl会触发读取/etc/hostname文件配置,使其内核识别而生效
## 3、重启后会显示更改后的主机名

注意:静态主机名保存在/etc/hostname文件.以前版本的Red Hat Enterprise Linux作为一个变量保存在/etc/sysconfig/network 文件中。

有关hostname相关总结:

  1. 有3种不同主机名,命名和作用有所区别,但真正影响系统的是static主机名,其他两种可忽略。
    命名规则区别:pretty主机名,可以使用任意字符作为主机名;transient和static主机名都要遵循FQDN命名规则。
    作用和影响区别:当系统启动时,内核初始化会使用static主机名;当设定的static主机名有效时,transient主机名不会被使用。
  2. 更改主机名多种方法,
    方法一:命令hostname,临时更改,重启会失效。
    方法二:修改/etc/hostname配置,内核不会自动识别,需命令hostnamectl读取,才能生效。
    方法三:使用命令hostnamectl修改最简单直接(建议使用方式)
    方法四:利用网络工具或命令更改,在此就不再说明。
  3. 无论哪种方法,都不会自动更新/etc/hosts。仍需手工将主机名和IP进行对应解析。
  4. 基于以上情况,在确认当前主机名时,不要只使用命令hostname,建议使用命令hostnamectl或是查看/etc/hostname文件配置为准。(否则就是坑)

转载于:https://my.oschina.net/xinghaitao/blog/1023444

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值