S_lion's Studio

修改centos7主机名

字数统计: 783阅读时长: 3 min
2021/08/07 Share

这篇讲解下如何修改Centos7的主机名。

Centos7中主机名分为了3类:

  1. static类

    就是我们常说的主机名。由/etc/hostname文件决定。

  2. transient类

    我们常说的临时主机名。默认在系统启动的时候会根据/etc/hostname文件中的静态主机名进行初始化。

  3. pretty类

    它可以提供非标准的主机名。它可以包含特殊符号,例如空格。

/etc/hostname文件没有主机名的时候,在系统启动的时候,内核会将transient初始化为localhost.localdomain

主机名修改方式

hostname

使用hostname命令修改主机名,它修改是transient主机名,即临时生效的主机名。

/etc/hostname

直接修改/etc/hostname文件,它瞬时生效+永久生效。

nmtui

通过nmtui命令在图形化界面修改主机名。会直接修改/etc/hostname文件,他会瞬时生效+永久生效的。

hostnamectl

使用hostnamectl命令,它可以修改并查看static、transient或pretty三种主机名。当它修改了static主机名时,会直接写入*/etc/hostname*文件中,因此它也是瞬时生效+永久生效的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ hostnamectl --help
hostnamectl [OPTIONS...] COMMAND ...

Query or change system hostname.

-h --help Show this help
--version Show package version
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--transient Only set transient hostname
--static Only set static hostname
--pretty Only set pretty hostname

Commands:
status Show current hostname settings
set-hostname NAME Set system hostname
set-icon-name NAME Set icon name for host
set-chassis NAME Set chassis type for host
set-deployment NAME Set deployment environment for host
set-location NAME Set location for host

查看主机名

1
2
3
4
5
6
7
8
9
10
11
[root@slions_pc1 ~]#  hostnamectl
Static hostname: slions_pc1
Icon name: computer-vm
Chassis: vm
Machine ID: 72c6db2a36e54cc584626da0118ed9ca
Boot ID: 2cbdd44b889d40b29f932e9462e8ec15
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64

同时修改3种主机名

当同时修改了pretty和(static | transient)中的一种时,将取pretty名的简化部分作为static主机名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@slions_pc1 ~]# hostnamectl set-hostname slions
[root@slions_pc1 ~]# hostname
slions
[root@slions_pc1 ~]# cat /etc/hostname
slions
[root@slions_pc1 ~]# hostnamectl status
Static hostname: slions
Icon name: computer-vm
Chassis: vm
Machine ID: 72c6db2a36e54cc584626da0118ed9ca
Boot ID: 2cbdd44b889d40b29f932e9462e8ec15
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64
[root@slions_pc1 ~]# hostnamectl --pretty

可以从结果中看到,只改变了static和transient(内核动态维护的,一定会改变),而pretty却没设置成功。这是因为这里给出的主机名”slions”是一个符合主机名标准的名称。如果指定一个非标准的主机名,例如包含特殊符号,那么也会设置pretty。

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@slions_pc1 ~]# hostnamectl set-hostname "slions1 slions2"
[root@slions_pc1 ~]# hostnamectl status
Static hostname: slions1slions2
Pretty hostname: slions1 slions2
Icon name: computer-vm
Chassis: vm
Machine ID: 72c6db2a36e54cc584626da0118ed9ca
Boot ID: 2cbdd44b889d40b29f932e9462e8ec15
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-957.el7.x86_64
Architecture: x86-64

pretty hostname已经改变,且static hostname是它的”简化版”。

修改某种类型的主机名

1
2
3
4
5
6
7
hostnamectl set-hostname NAME --static
hostnamectl set-hostname NAME --transient
hostnamectl set-hostname NAME --pretty
# 还可以同时修改两种
hostnamectl set-hostname NAME --static --transient
hostnamectl set-hostname NAME --static --pretty
hostnamectl set-hostname NAME --transient --pretty

修改、查看远程主机的主机名

使用”-H”或”–host”选项。连接基于SSH。

1
2
hostnamectl -H [USER@]HOST set-hostname NAME
hostnamectl -H [USER@]HOST status
CATALOG
  1. 1. 主机名修改方式
    1. 1.1. hostname
    2. 1.2. /etc/hostname
    3. 1.3. nmtui
    4. 1.4. hostnamectl
      1. 1.4.1. 查看主机名
      2. 1.4.2. 同时修改3种主机名
      3. 1.4.3. 修改某种类型的主机名
      4. 1.4.4. 修改、查看远程主机的主机名