本教程介绍如何在 Debian 10 Buster 上更改主机名而无需重启系统。

主机名是在安装 Debian 操作系统时设置的,或者如果您正在启动虚拟机,则会在启动时动态分配给实例。

先决条件

要能够更改系统主机名,您需要以 root 用户或具有 sudo 权限的用户身份登录。

显示当前主机名

在 Debian 10 以及所有其他使用 systemd 的 Linux 发行版中,您可以使用 hostnamectl 工具更改和显示给定系统的主机名。

要查看当前系统主机名,请输入不带任何选项的 hostnamectl:

终端

hostnamectl

输出将显示当前系统主机名,在本例中为 host.linuxize.com。

输出

   Static hostname: host.linuxize.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 70a3f06298014fd9ac42e5dc1de1034a
           Boot ID: 1dc8b9af89a4426b99cb348f6d483757
    Virtualization: oracle
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-5-amd64
      Architecture: x86-64

更改系统主机名

主机名是标识网络上计算机的标签。您不应在同一网络上的两台不同计算机上设置相同的主机名。建议使用完全限定域名 (FQDN) 作为系统主机名。

在 Debian 10 上更改系统主机名涉及两个步骤。首先,使用 hostnamectl set-hostname 命令设置新主机名,然后使用新主机名更新 /etc/hosts 文件。

例如,要将系统主机名更改为 arya.example.com,您将执行以下步骤:

  1. 首先通过运行以下命令设置新主机名:

    终端
    sudo hostnamectl set-hostname arya.example.com

    hostnamectl 命令不产生输出。成功时返回 0,否则返回非零失败代码。

  2. 其次,打开 /etc/hosts 文件并用新主机名替换旧主机名。

    /etc/hoststxt
    127.0.0.1   localhost
    127.0.0.1   arya.example.com arya 
    
    # The following lines are desirable for IPv6 capable hosts::1     localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

验证更改

要验证主机名是否成功更改,请再次使用 hostnamectl 命令:

终端

hostnamectl

新的系统主机名将打印在命令行上。

输出

   Static hostname: arya.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 70a3f06298014fd9ac42e5dc1de1034a
           Boot ID: 1dc8b9af89a4426b99cb348f6d483757
    Virtualization: oracle
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-5-amd64
      Architecture: x86-64