文档章节

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

xinghaitao
 xinghaitao
发布于 2017/06/25 14:23
字数 2136
阅读 57
收藏 0

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文件配置为准。(否则就是坑)

© 著作权归作者所有

xinghaitao
粉丝 0
博文 9
码字总数 14971
作品 0
深圳
技术主管
私信 提问
使用 yum-cron 自动更新 Linux系统

我知道如何使用 yum 命令行 更新系统,但是我想用 cron 任务自动更新软件包。该如何配置才能使得 yum 使用 cron 自动更新系统补丁或更新呢? 首先需要安装 yum-cron 软件包。该软件包提供以 ...

问题终结者
2018/07/31
25
0
红帽7bate试用(增加额外组件)-之一

红帽7的bate版,终于下载完了,分析安装盘,排查了虚拟化、安装等关键包,事实证明: 介于Fedora 19和20之间,根据以往的经验推测,会越来越靠向高版本,也就是Fedora20, 这和去年红帽对外公...

taohong
2013/12/16
150
1
Admin(一)——Linux简介与简单命令

一、RHEL 与CentOS的区别 RHEL是红帽公司提供的商业版Linux系统,若要获取DVD镜像、安全更新等技术服务支持,一般需要付费订阅;不过构成RHEL系统的各种软件包都是基于GPL开源协议免费发布的...

神奇的小哈
2018/05/15
0
0
安装完最小化RHEL/CentOS 7后需要做的30件事情

CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本。你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级、安装新的软件包、配置特定服务和应用...

dufei
2018/06/28
0
0
在redhat企业版5.8上装oracle 10g --笔记

注意事项: Que1:一般而言,在配置内核参数(gedit /etc/sysctl.conf)时,我们只需要修改kernel.shmmax. 1 为物理内存的一半: 物理内存grep MemTotal /proc/meminfo 2 单位是字节。(B) ...

长平狐
2012/09/19
319
0

没有更多内容

加载失败,请刷新页面

加载更多

领域驱动中的“贫血症和失忆症”

贫血症严重危害着人类健康,并且伴随有危险的副作用。当贫血领域对象被首次提出来时,它并不是一个博得赞美的词汇,它描述的是一个缺少内在行为领域对象。奇怪的是,人们对于贫血领域对象的态...

还仙
1分钟前
0
0
条码打印软件中标签预览正常打印无反应怎么解决

在使用条码打印软件制作标签时,有客户反馈,标签打印预览正常的,但是打印无反应,咨询是怎么回事?今天针对这个情况,可以参考以下方法进行解决。 一、预览正常情况下,打印没反应 (1)在条码...

中琅软件
10分钟前
0
0
判断字符串的时候

判断字符串的时候一定把常量房前边, //报警程度 String leve = vo.getDeviceAlertDeal().getWarnLevel(); if(("0").equals(leve)) { row.add("无报警"); }else if(("1").equals(leve)) { ro......

简小姐
11分钟前
0
0
Linux maven3.6.2 install

PS:安装 maven 之前请先安装 jdk 1.安装 wget 命令(安装过就不用了) yum -y install wget 2.寻找需要的 maven 版本 https://maven.apache.org/download.cgi 3.进入 /var/local 文件夹 cd...

东方神祇
13分钟前
0
0
Tomcat源码分析二:先看看Tomcat的整体架构

Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server、Service、Connector、Container等组件,接下...

flygrk
16分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部