主機名稱

(重定向自Hostname

主機名稱(英語:hostname),又稱節點名稱nodename),在連上電腦網路時,特定裝置使用的名稱。在進行電子通訊時,可以用來識別某個裝置之用,諸如全球資訊網電子郵件Usenet中都使用主機名稱來當成識別之用。

網際網路中,主機名稱被附在域名系統(DNS)的域名之後,形成完整網域名稱

Linux

定义

systemd项目

所谓"主机名",其实有三种不同的含义:[1][2]

  • pretty主机名,仅供人类阅读,可以包含各种特殊字符, 例如"Lennart's Laptop"(必须是UTF-8编码)。 pretty主机名、chassis(设备类型)、icon(图标名称)存储在 /etc/machine-info 文件中, 详见 machine-info(5)页面存档备份,存于互联网档案馆) 手册。
  • static主机名(静态主机名),在主机启动时,将会使用它初始化内核主机名。静态主机名,存储在 /etc/hostname 文件中, 详见 hostname(5)页面存档备份,存于互联网档案馆) 手册。
  • transient主机名(临时主机名),是一个备用的数值,以供网络配置搜索时使用。如果配置了静态主机名且该值是可用时(不为localhost时),临时主机名将不会被使用。[2] 临时主机名是映射内核主机的。[3]

内核主机名

内核主机名(kernel hostname),是该机器的机器名,可通过 /proc/sys/kernel/hostname 文件查看[4],主机在启动时,将会 /etc/hostname 读取主机名,可通过hostname 命令和hostnamectl 命令设置临时主机名,但设置的临时主机名在重启时将会消失;也可以通过 hostnamectl 命令设置静态主机名,重启后不会消失。

相关工具

hostname (net-tools项目)

hostname 命令通过gethostname 函数和 sethostname 函数进行主机名的读写。[5][6]而该主机名存储在内核内存中 utsname 数据结构中。[4] hostname 命令实质操作的对象是临时主机名。

hostnamectl(systemd项目)

hostnamectl 用于控制系统的主机名。

该命令可 查询与修改系统主机名以及其他相关设置。它可操作pretty主机名、静态主机名以及临时主机名。[2]

主機名稱的操作

$ hostname
localhost

# 設置臨時主機名稱
$ hostname manger1
$ hostname
manger1

# 設置靜態主機名稱,同時內核主機名稱也會被更新
$ sudo hostnamectl set-hostname manager2
$ hostnamectl status 
   Static hostname: manager2
         Icon name: computer-vm
           Chassis: vm
        Machine ID: c0fddf681459441c980f6f25e80e9976
           Boot ID: 4265c546e7cd4542bc832e41d6ae0788
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-957.12.2.el7.x86_64
      Architecture: x86-64
$ cat /etc/hostname 
manager2

相关网站

参考文献

  1. ^ hostnamectl(1) — manpages-zh — Debian buster — Debian Manpages. manpages.debian.org. [2020-03-12]. 
  2. ^ 2.0 2.1 2.2 hostnamectl(1) — systemd — Debian buster — Debian Manpages. manpages.debian.org. [2020-03-12]. 
  3. ^ hostnamed. www.freedesktop.org. [2020-03-12]. (原始内容存档于2020-08-18). 
  4. ^ 4.0 4.1 uname(2) — manpages-dev — Debian jessie — Debian Manpages. manpages.debian.org. [2020-03-12]. 
  5. ^ hostname(1) — manpages-zh — Debian jessie — Debian Manpages. manpages.debian.org. [2020-03-12]. 
  6. ^ sethostname(2) — manpages-dev — Debian jessie — Debian Manpages. manpages.debian.org. [2020-03-12].