介绍
在本挑战中,你将学习如何在 Linux 系统上配置主机名解析。正确的主机名解析对于网络通信至关重要。你将练习使用 /etc/hosts 文件设置静态主机名解析,然后配置系统使用 DNS 服务器进行动态解析。
配置静态主机名解析
你的第一个任务是配置静态主机名解析。这种方法适用于小型网络或用于覆盖公共 DNS 记录。你将编辑 /etc/hosts 文件,将一个 IP 地址映射到特定的主机名。
任务
- 为
myhost.example.com配置静态主机名解析。
要求
- 编辑
/etc/hosts文件,将 IP 地址192.168.1.100映射到主机名myhost.example.com。 - 验证主机名
myhost.example.com是否能正确解析为192.168.1.100。
提示
- 使用具有
sudo权限的命令行文本编辑器(如nano或vi)来编辑/etc/hosts。 getent hosts <hostname>命令是测试名称解析的一种可靠方式。
示例
正确配置 /etc/hosts 文件后,getent 命令的输出应如下所示:
$ getent hosts myhost.example.com
192.168.1.100 myhost.example.com
配置动态主机名解析
现在,你将从静态解析切换到动态(基于 DNS)解析。在本练习中,你的本地机器(127.0.0.1)上已经预先配置并运行了一个简单的 DNS 服务器。你的任务是禁用静态条目,并配置系统使用该 DNS 服务器。
任务
- 禁用上一步中的静态主机名条目。
- 配置系统使用本地 DNS 服务器。
要求
- 必须禁用
/etc/hosts中myhost.example.com的静态条目。你可以通过删除该行或在行首添加#进行注释来实现。 - 配置系统的 DNS 客户端,使其使用位于
127.0.0.1的名称服务器(nameserver)。 - 使用
dig命令验证新配置。
提示
- 配置 DNS 客户端的主要文件是
/etc/resolv.conf。 dig命令是查询 DNS 服务器的强大工具。
示例
在正确配置解析器并禁用静态主机条目后,dig 命令应产生类似于以下的输出,显示来自服务器的解析结果:
$ dig myhost.example.com
; <<>> DiG 9.16.23-RH <<>> myhost.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58851
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;myhost.example.com. IN A
;; AUTHORITY SECTION:
example.com. 5 IN SOA ns.icann.org. noc.dns.icann.org. 2025011748 7200 3600 1209600 3600
;; Query time: 62 msec
;; SERVER: 100.100.2.136#53(100.100.2.136)
;; WHEN: Fri Aug 15 17:18:27 CST 2025
;; MSG SIZE rcvd: 101
总结
在本挑战中,你学习了如何管理基础主机名解析。你练习了通过编辑 /etc/hosts 文件配置静态解析,然后通过 /etc/resolv.conf 文件将系统配置为 DNS 客户端,从而切换到动态解析。这些都是 Linux 网络配置和系统管理中的核心技能。



