Product SiteDocumentation Site

8.3. 设置主机名称与配置名称服务

将 IP 数字转换为名称系方便记忆。实务上,IP 地址系用于辨识网络卡之类的网络接口设备。机器可能有多个网络卡,每个网络卡可能有多个接口,所以在网域名称系统里,一部电脑就可能有多个名称。
然而,每部机器都有辨识用的主要 (或 “规范”) 名称,保存在 /etc/hostname 文件内并以初始脚本经由 hostname 命令与 Linux 核心沟通。当前值保存在虚拟文件系统,可经由 cat /proc/sys/kernel/hostname 命令取得。
意外的是,网域名称的管理方式不同,来自机器的完整名称,经由名称解析取得。可以在 /etc/hosts 文件内更改它;在名称清单前写入完整的名称,如下例:
127.0.0.1     localhost
127.0.1.1     arrakis
192.168.0.1   arrakis.falcot.com

8.3.1. 名称解析

Linux 的名称解析机制是模块化的且可使用 /etc/nsswitch.conf 宣称的数据源。涉及主机名称解析的条目是 hosts。默认情况下,它包括 files dns,表示系统先参照 /etc/hosts 文件,再参照 DNS 服务器。NIS/NIS+ 或 LDAP 服务器是另一个来源选择。

8.3.1.1. 配置 DNS 服务器

DNS (网域名称服务) 是映射名称至 IP 地址的分布式分级服务,同时也反向映射。尤其是,把可阅读的名称,如 www.eyrolles.com 映射至实际的 IP 地址 213.244.11.247
必须先设置 DNS 服务器,才能用到 DNS 信息。Falcot 公司自设该服务器,但个人用户可能使用 ISP 提供的 DNS 服务器。
DNS 服务器的用法在 /etc/resolv.conf 内,每个一列,在 IP 地址前有 nameserver 关键词,如下:
nameserver 212.27.32.176
nameserver 212.27.32.177
nameserver 8.8.8.8
注意,当网络由 NetworkManager 管理或经由 DHCP 配置时,可以自动处理 (与覆写) /etc/resolv.conf 文件。或者当安装了 resolvconf 时,或者当启用了 systemd-resolved(8)时。

8.3.1.2. /etc/hosts 文件

在本地网络没有名称服务器时,仍可以在保留给本地网络的 /etc/hosts 文件内,创建 IP 地址与主机名称的小型对照表。此文件的语法在 hosts(5) 中说明,极简单:每列一个固定 IP 地址,然后是相关的名称 (第一个是 “完全合格”,表示包括网域名称)。
即使网络停摆或 DNS 服务器不通仍可使用此文件,但只适用于本地网络所有机器都复制的内容。即使是极微小的变动,都需要更新各地所有的文件。所以, /etc/hosts 通常只包括最重要的条目。
这个文件对未连上互联网的小型网络是够用的,但对于5 部以及以上的机器,推荐安装一个 DNS 服务器。