CentOS 7主機名的彎彎繞繞

2022-02-20 10:53:51 字數 4473 閱讀 1178

在centos 6中,修改主機名方式很簡單,臨時修改主機名使用hostname命令,永久修改主機名直接寫進檔案/etc/sysconfig/network中即可。

但在centos 7中,主機名就沒那麼簡單了,它涉及了一些彎彎繞繞。

在centos 7中,主機名分3類:static(靜態主機名)、pretty(好看、易讀的主機名)和transient(短暫臨時的)。centos 7中和主機名有關的檔案為/etc/hostname,它是在系統初始化的時候被讀取的,並且核心根據它的內容設定transient主機名。

其中:static類的主機名就是我們常說的主機名,由/etc/hostname檔案決定。

transient類的主機名也就是我們常說的臨時主機名,它是由核心動態維護的主機名。預設在系統啟動的時候會根據/etc/hostname檔案中的靜態主機名進行初始化。

pretty類的主機名是給人看的,它可以提供非標準的主機名,以前版本(例如centos 6)沒有這功能。它可以包含特殊符號,例如空格。例如將pretty名稱命為"mayun's host",這種名稱在以前的主機名(即static類主機名)裡是不允許存在的。

/etc/hostname檔案中的static主機名是瞬時生效的,也是永久生效的。修改後使用hostname命令或者uname -n直接就可以讀取,重啟後也按照此檔案的主機名進行初始化。

/etc/hostname檔案沒有主機名的時候,在系統啟動的時候,核心會將transient初始化為localhost.localdomain

/etc/sysconfig/network檔案已經失效。

使用hostname命令修改主機名,它修改是transient主機名,即臨時生效的主機名。

直接修改/etc/hostname檔案,它瞬時生效,重啟後也生效(因為核心會根據它初始化transient主機名)。

使用nmtui命令在圖形化介面修改主機名。它會直接修改/etc/hostname檔案,因此也是瞬時生效+永久生效的。

使用hostnamectl命令。它可以修改並檢視static、transient或pretty三種主機名。當它修改了static主機名時,會直接寫入/etc/hostname檔案中,因此它也是瞬時生效+永久生效的。

1.檢視主機名

hostnamectl

#或hostnamectl status

#或hostnamectl [--pretty|--static|--transient] status

例如,當前主機名為"xuexi.longshuai.com"。

[root@xuexi ~]# uname -n

xuexi.longshuai.com

[root@xuexi ~]# hostname name1

[root@xuexi ~]# hostnamectl

static hostname: xuexi.longshuai.com

transient hostname: name1

icon name: computer-vm

chassis: vm

machine id: d13bce5e247540a5b5886f2bf8aabb35

boot id: d34a4222469e4f1cbe20c27aca174e10

virtualization: vmware

operating system: centos linux 7 (core)

cpe os name: cpe:/o:centos:centos:7

kernel: linux 3.10.0-327.el7.x86_64

architecture: x86-64

可以看到使用hostname命令修改主機名後,transient已經改變了。

2.同時修改3種主機名

當同時修改了pretty和(static | transient)中的一種時,將取pretty名的簡化部分作為static主機名。

hostnamectl set-hostname name
例如:

[root@xuexi ~]# hostnamectl set-hostname name2

[root@xuexi ~]# hostname

name2

[root@xuexi ~]# cat /etc/hostname

name2

[root@xuexi ~]# hostnamectl status

static hostname: name2

icon name: computer-vm

chassis: vm

machine id: d13bce5e247540a5b5886f2bf8aabb35

boot id: d34a4222469e4f1cbe20c27aca174e10

virtualization: vmware

operating system: centos linux 7 (core)

cpe os name: cpe:/o:centos:centos:7

kernel: linux 3.10.0-327.el7.x86_64

architecture: x86-64

[root@xuexi ~]# hostnamectl --pretty

[root@xuexi ~]#

可以從結果中看到,只改變了static和transient(核心動態維護的,一定會改變),而pretty卻沒設定成功。這是因為這裡給出的主機名"name2"是乙個符合主機名標準的名稱。如果指定乙個非標準的主機名,例如包含特殊符號,那麼也會設定pretty。

例如:

[root@xuexi ~]# hostnamectl set-hostname "name22 name22"

[root@xuexi ~]# hostnamectl

static hostname: name22name22

pretty hostname: name22 name22

icon name: computer-vm

chassis: vm

machine id: d13bce5e247540a5b5886f2bf8aabb35

boot id: d34a4222469e4f1cbe20c27aca174e10

virtualization: vmware

operating system: centos linux 7 (core)

cpe os name: cpe:/o:centos:centos:7

kernel: linux 3.10.0-327.el7.x86_64

architecture: x86-64

pretty hostname已經改變,且static hostname是它的"簡化版"。

3.修改某種型別的主機名

hostnamectl set-name name --static

hostnamectl set-name name --transient

hostnamectl set-name name --pretty

用法如上面的例子。

4.同時修改其中兩種名稱。

hostnamectl set-name name --static --transient

hostnamectl set-name name --static --pretty

hostnamectl set-name name --transient --pretty

用法如上面的例子。但同樣注意,當修改了pretty主機名和其他一種時,將取pretty的"簡化版"。

5.修改、檢視遠端主機的主機名,使用"-h"或"--host"選項。連線基於ssh。

注意,無法遠端修改centos 5或6主機名,因為它使用的是systemd類的命令進行修改的。

hostnamectl -h [user@]host set-hostname name

hostnamectl -h [user@]host status

例如,使用root使用者連線到192.168.100.59主機上並修改它的主機名。

hostnamectl -h [email protected] set-hostname hello59

hostnamectl -h [email protected] status

CentOS7修改主機名

在centos或rhel中,有三種定義的主機名 a 靜態的 static b 瞬態的 transient 以及 c 靈活的 pretty 靜態 主機名也稱為核心主機名,是系統在啟動時從 etc hostname自動初始化的主機名。瞬態 主機名是在系統執行時臨時分配的主機名,例如,通過dhcp或mdn...

Centos7修改主機名

在centos中,有三種定義的主機名 靜態的 static 瞬態的 transient 和靈活的 pretty 靜態 主機名也稱為核心主機名,是系統在啟動時從 etc hostname自動初始化的主機名。瞬態 主機名是在系統執行時臨時分配的主機名,例如,通過dhcp或mdns伺服器分配。靜態主機名和...

Centos7 修改主機名

一 知識儲備 在centos或rhel中,有三種定義的主機名 a 靜態的 static b 瞬態的 transient c 靈活的 pretty 靜態 主機名也稱為核心主機名,是系統在啟動時從 etc hostname自動初始化的主機名。瞬態 主機名是在系統執行時臨時分配的主機名,例如,通過dhcp...