在 Linux 中允许设置三类主机名,它们的细节如下:
- 静态: 这是静态主机名,由系统管理员添加。
- 瞬时/动态: 这个由 DHCP 或者 DNS 服务器在运行时赋予。
- 易读形式: 它可以由系统管理员赋予。这个是自由形式的主机名,以一种易读形式来表示服务器,例如 “JBOSS UAT Server” 这样的名字
方法1: 通过系统自带的hostnamectl
hostnamectl是系统自带的原生命令,他可以立刻改变主机名而无需重启生效
# 当直接使用hostnamectl命令或如下命令 可以查询系统的主机名和相关设定
[root@promote ~]# hostnamectl status
Static hostname: hadoop01
Icon name: computer-vm
Chassis: vm
Machine ID: 9b686bccc9cc45dd9f111a138489e8e9
Boot ID: 40a2289a53eb41d7a7f990e091c947c9
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.el7.x86_64
Architecture: x86-64
# 若想改变主机名,可采用下面的格式
$ hostnamectl set-hostname [new hostname]
方法2:nmcli命令
nmcli是一个命令行工具,旨在控制NetworkManager 并报告网络状态。
# 使用下面的命令查看主机名
$ nmcli general hostname
hadoop01
# 使用下面的格式改变主机名
$ nmcli general hostname [new hostname]
# 为了安全目的,需要重启systemd-hostnamed服务
$ sudo systemctl restart systemd-hostnamed
方法3:nmtui命令
nmtui 是一个基于 curses 库的 TUI 应用,被用来和 NetworkManager 交互。
当启动 nmtui 后,如果没有指定 nmtui 的第一个命令行参数,它将提醒用户选择执行某项活动。
# 使用nmtui命令
$ nmtui
# 同样为了安全目的,需要重启systemd-hostnamed服务
$ sudo systemctl restart systemd-hostnamed
方法4:修改/etc/hostname文件
# 通过检查/etc/hostname文件查看当前主机名
$ cat /etc/hostname
hadoop01
# 要改变主机名,覆盖这个文件即可,因为这个文件只包含主机名一项内容
$ sudo echo "hadoop02" > /etc/hostname
$ cat /etc/hostname
hadoop02
# 重启系统
$ sudo init 6
# 查看主机名是否被更改
$ hostname
hadoop02