编辑 Etc/Hosts Linux
在各种情况下,您将需要编辑系统中的主机文件。这可以将其用作防火墙,即控制一些网络流量、添加域名或测试其功能。
主机文件是本地文件或本地 DNS 系统,其中包含主机名和 IP 地址的静态表查找。它适用于所有操作系统,包括 Windows、Linux 和 macOS。
由于它是本地 DNS 系统,因此优先于其他 DNS 系统,这使其成为无法识别的域的不错选择。
这个快速教程将帮助您了解该文件包含的内容以及如何编辑它。
如何编辑主机文件
您会发现 Linux 主机文件存储在 /etc 目录中。这意味着您将需要 sudo 权限或 root 用户才能修改其内容。
主机文件中条目的一般语法是:
主机文件中指定的 IP 地址可以是 IPv4 或 IPv6 地址,只要解析到指定的域即可。
主机文件中的注释
主机文件还支持系统忽略的注释。它们以 octothorpe (#) 开头。
例如,系统将忽略以下条目。
127.0.0.1 localhost
::1 localhost
主机名命名规则
现在,主机文件中的主机名命名有一些规则,允许系统解析到指定的IP地址。
规则包括:
主机名不应以连字符或除星号等通配符之外的特殊字符开头。
指定的主机名只能包含字母数字字符、减号 (-) 和/或句点 (.)
主机名只能以字母数字字符开头和结尾。
示例用例 1
请允许我向您展示主机文件的示例编辑。在我的示例中,我有一个在端口 8000 上运行的本地网站,我想使用域development.local。
由于域development.local不是有效的域,我不能依赖DNS来解析它。因此,我可以将主机文件编辑为:
最后,我可以添加如下所示的条目:
保存并关闭文件。
最后,打开浏览器并导航到地址
如果主机名正确,则将加载指定端口上托管的网站。
示例用例 2
下一个用例是通过将流量重定向到无效的 IP 地址来阻止网站。例如,要阻止 google.com,请将 IP 地址添加到 localhost,如下所示:
注意:在上面的示例中,我们使用十六进制 IP 表示法来表示 localhost。
要确认更改,请打开浏览器并导航至 google.com
正如您所看到的,尽管我的互联网连接工作正常,但该地址并未解析为正确的地址。
一个简单的 ping 还显示该地址解析为 localhost,如下所示:
注意:对 /etc/hosts 文件的修改会立即生效,不包括应用程序缓存文件的实例。
结论
在本教程中,我们介绍了如何在 Linux 中编辑主机文件并将其用作本地 DNS 或防火墙。编辑主机文件会很方便,尤其是在 DNS 服务器出现故障的情况下。