本篇介紹如何在 RedHat 或 CentOS Linux 7 的系統中,使用 hostnamehostnamectl 指令來查詢並修改主機名稱。

每一台 Linux 主機都會有一個自己的主機名稱(hostname),若主機名稱沒有設定正確,對許多的網路服務都會造成影響,以下介紹如何在 RedHat 或 CentOS Linux 7 的系統中,查詢與更改主機名稱的設定。

查詢主機名稱

若要查詢主機名稱,可以使用 hostname 指令。簡短的主機名稱,可以使用 -s 參數查詢:

# 顯示主機名稱
hostname -s
linode02

完整的 FQDN,可以使用 -f 參數查詢:

# 顯示主機的 FQDN
hostname -f
linode02.gtwang.org

若要顯示主機所有的 FQDN,則可加上 -A 參數:

# 顯示主機所有的 FQDN
hostname -A
li1586-70.members.linode.com linode02.gtwang.org

若要顯示主機的 DNS 網域名稱,則可加上 -d 參數:

# 顯示主機的 DNS 網域名稱
hostname -d
gtwang.org

若主機有設定別名(alias),可用 -a 查詢(不過這個參數已經過時了,不建議繼續使用):

# 顯示主機別名
hostname -a

更改主機名稱

若要更改主機名稱,可以使用 hostnamectl 指令,以下是這個指令的使用方式。

# 顯示目前主機名稱設定
hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 50f8c7061d9046bfb883e7cf078f99be
           Boot ID: 8d2588e972c54d07abe43e0192d0860f
    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

若要更改主機名稱,可以使用 set-hostname 參數,並指定新的主機名稱,假設我們想將主機名稱設定為 myhost.gtwang.org,則執行:

# 更改主機名稱設定
hostnamectl set-hostname myhost.gtwang.org

更改完後,再查詢一次,確認設定是否正確:

# 顯示目前主機名稱設定
hostnamectl
   Static hostname: myhost.gtwang.org
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 50f8c7061d9046bfb883e7cf078f99be
           Boot ID: 8d2588e972c54d07abe43e0192d0860f
    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

這樣就完成主機名稱的更改設定了。

若需要設定主機的別名(alias),可以參考 hosts 的線上手冊,直接更改 /etc/hosts 的設定。

# 閱讀 hosts 的線上手冊
man hosts

參考資料:Red Hat