如何在 Linux 中使用 /etc/hosts 文件设置本地 DNS
DNS(域名系统或服务)是一种分层的去中心化命名系统/服务,它将域名转换为互联网或专用网络上的 IP 地址以及提供此类服务的服务器。服务称为 DNS 服务器。
本文介绍了如何在 Linux 系统中使用主机文件 (/etc/hosts) 设置本地 DNS,以进行本地域名解析或在上线前测试网站。
例如,您可能希望在公开上线之前使用自定义域名在本地测试网站,方法是修改本地系统上的 /etc/hosts 文件,将域名指向该网站的 IP 地址。您配置的本地 DNS 服务器。
/etc/hosts 是一个将主机名或域名转换为 IP 地址的操作系统文件。这对于在网站公开上线之前测试网站更改或 SSL 设置非常有用。
注意:此方法仅在主机具有静态 IP 地址时才有效。因此,请确保您已为运行其他操作系统的 Linux 主机或节点设置静态 IP 地址。
出于本文的目的,我们将使用以下域、主机名和 IP 地址(使用适用于您的本地设置的值)。
Domain: tecmint.lan
Host 1: ubuntu.tecmint.lan 192.168.56.1
Host 2: centos.tecmint.lan 192.168.56.10
了解 Linux 中的名称服务开关
在继续之前,您应该了解有关另一个重要文件 /etc/nsswitch.conf 的一些知识。它提供名称服务切换功能,控制名称服务查找的服务查询顺序。
配置基于订单;如果 files 位于 dns 之前,则意味着系统将在检查 DNS 的名称服务请求之前查询 /etc/hosts 文件。但如果 DNS 位于文件之前,则域查找过程将在任何其他适当的服务或文件之前首先查询 DNS。
在这个场景中,我们想要查询“files”服务。要检查订单,请键入。
cat /etc/nsswitch.conf
OR
grep hosts /etc/nsswitch.conf
在 Linux 中使用 /etc/hosts 文件本地配置 DNS
现在使用您选择的编辑器打开 /etc/hosts 文件,如下所示
sudo vi /etc/hosts
然后将以下行添加到文件末尾,如下面的屏幕截图所示。
192.168.56.1 ubuntu.tecmint.lan
192.168.56.10 centos.tecmint.lan
接下来,测试一切是否按预期正常工作,使用 主机 1 中的 ping 命令,您可以使用其域名 ping 主机 2,例如所以。
ping -c 4 centos.tecmint.lan
OR
ping -c 4 centos
在主机2上,我们设置了Apache HTTP服务器。因此,我们还可以通过访问 URL http://centos.howtoing.lan 来测试名称翻译服务是否正常工作。
重要:要在网络上的任何主机上使用域名,您必须在其 /etc/hosts 文件中配置上述设置。
这是什么意思呢,在上面的例子中,我们只配置了主机1的hosts文件,并且只能使用上面的域名。要在主机 2 上使用相同的名称,我们还必须将地址和名称添加到其主机文件中。
最后,您应该使用 host 命令或 nslookup 命令来测试名称翻译服务是否实际工作,这些命令仅查询 DNS 并忽略 /etc/hosts 和 /etc/nsswitch 中的任何配置.conf 文件。
您可能还想阅读以下相关文章。
- 在 RHEL/CentOS 7 中安装和配置仅缓存 DNS 服务器
- 设置基本递归缓存 DNS 服务器并为域配置区域
- 用于排除 DNS(域名服务器)故障的 8 个 Linux Nslookup 命令
- 用于查询 DNS 查找的有用“host”命令示例
就是这样!请通过下面的评论部分与我们分享有关此主题的任何其他想法或问题。