如何在 Debian 上编辑 Hosts 文件
本文介绍的是在 Debian 12 系统上编辑 /etc/hosts 文件。但让我们首先看看 Hosts 文件是什么。
了解主机文件
所有主要操作系统都有一个主机文件来将主机名转换为 IP 地址。主机文件的优先级高于 DNS 查找。每当您通过输入域名打开网站时,系统都会读取主机文件以检查相应的 IP,然后将其打开。主机文件是一个简单的文本文件,位于 Debian 系统的 /etc 文件夹中,完整路径为 /etc/hosts。
它看起来是这样的:
根据我们提到的内容,您可能期望该文件具有很长的 IP 和相应主机名列表;但事实并非如此。主机文件仅包含几行;
- 默认情况下,第一部分包含本地主机和计算机的主机名和 IP 地址。这是您通常要修改的部分以进行所需的更改。
- 第二部分包含有关支持 IPv6 的主机的信息;你几乎不会编辑这些行。
每当您输入地址时,您的系统都会检查主机文件是否存在;如果存在,您将被定向到相应的 IP。如果主机名未在主机文件中定义,您的系统将检查您互联网的 DNS 服务器以查找相应的 IP 并相应地重定向您。
为什么要编辑 Hosts 文件?
通过编辑主机文件,您可以实现以下功能以及更多功能:
- 阻止网站
- 处理攻击或解决恶作剧
- 为本地服务器上的位置创建别名
- 覆盖您的 DNS 服务器提供的地址
- 控制对网络流量的访问
如何编辑Hosts文件?
您只能以超级用户身份编辑位于 /etc/hosts 的主机文本文件。您首先必须在 Debian 终端中的文本编辑器(例如 VI 编辑器、Nano 编辑器或 gedit 等)中打开它。然后,您将进行所需的更改并保存文件以使这些更改生效。
首先,让我们通过应用程序启动器搜索打开终端,如下所示:
Debian 应用程序启动器可以通过 Super/Windows 键访问。
在本文中,我们将使用Nano编辑器来编辑hosts文件。请键入以下命令打开主机文件:
sudo nano /etc/hosts
或者
sudo gedit /etc/hosts
(用于 gedit)
如前所述,我们将编辑主机文件的第一部分,其中定义了 IP 地址和主机名。我们将解释以下两种使用主机文件的方法:
- 阻止网站
- 通过别名访问远程计算机
使用 /etc/hosts 文件阻止网站
您可以通过将网站重定向到本地主机的 IP 或默认路由来阻止该网站。
例如,如果我们想阻止 google.com,我们可以将以下文本添加到我们的文件中:
127.0.0.1 www.google.com
现在,当我们打开 google 网站时,我们的系统将从主机文件中获取本地主机的 IP (127.0.0.1) 并将我们重定向到该地址,而不是从 DNS 服务器获取 google IP。
或者
0.0.0.0 www.google.com
现在,当我们打开 google 网站时,我们的系统将从主机文件中获取默认路由 (0.0.0.0) 的 IP,并将我们重定向到该地址,而不是从 DNS 服务器获取 google IP。
这就是编辑后的文件的样子。请按 ctrl+X 并在文件名提示中输入 y 来保存更改。
现在,当您尝试从浏览器打开 www.google.com 时,您将看到如下错误消息:
请注意,我们在主机文件中定义了完整的地址 www.google.com 而不仅仅是主机名 google.com,因为如果我们只定义后者,现代浏览器有时会绕过该块。
通过别名访问远程计算机
假设我们想要访问位于本地网络上的服务器。我们通常必须输入服务器的 IP 才能访问它,除非它已在本地 DNS 上定义。避免一次又一次输入 IP 的一种方法是在主机文件中为服务器分配一个别名,如下所示:
192.168.1.10 myserver
IP对应于我们要访问的服务器的位置,myserver是我们要使用的新别名。
当我们保存文件并在地址栏中输入 myserver 时,我们将被重定向到远程服务器。
我们了解到,通过对主机文件进行非常简单的更改,我们可以根据需要自定义并重定向网络流量。我们还可以通过将主机文件恢复为默认值来消除网络攻击或恶作剧。
经常问的问题
什么是主机文件?
Debian Linux 中的主机(或 /etc/hosts)文件是操作系统用来将主机名映射到 IP 地址的简单文本文件。它允许系统在查询外部 DNS 服务器之前将域名(例如“www.example.com”)转换为 IP 地址。
Debian Linux 中的主机文件位于哪里?
在 Debian 中,hosts 文件位于 /etc/hosts。
如何在 Debian Linux 中编辑主机文件?
要编辑主机文件,您需要 root 权限。您可以使用 nano 或 vi 等文本编辑器。例如,使用:
sudo nano /etc/hosts
或者
sudo vi /etc/hosts
打开并编辑文件。
为什么需要修改主机文件?
常见原因包括为 Web 开发设置本地测试环境、阻止访问某些网站或重定向特定域的流量。
hosts 文件中条目的格式是什么?
主机文件中的每个条目都应另起一行,以 IP 地址开头,后跟主机名。例如:
127.0.0.1 localhost
编辑主机文件会影响我的系统安全吗?
主机文件中的错误配置可能会导致网络问题或安全漏洞,例如将流量重定向到恶意站点。始终确保准确且有意的更改。
如何使用主机文件阻止网站?
要阻止网站,请在主机文件中添加一行,其中包含 127.0.0.1,后跟该网站的域名。这会将对该站点的任何请求重定向到您的本地计算机,从而有效地阻止它。
对主机文件的更改会立即生效吗?
更改通常会立即生效,但在某些情况下,您可能需要刷新 DNS 缓存或重新启动网络服务。
如何注释掉主机文件中的一行?
要注释掉一行,只需在该行的开头添加一个 # 符号即可。这使得该行成为注释,并且系统将忽略它。
是否可以使用hosts文件进行负载平衡?
Hosts 文件不适合负载平衡,因为它只能将主机名映射到单个 IP 地址。对于负载平衡,需要更复杂的方法,例如 DNS 循环或专用负载平衡器。
我可以在主机文件中使用通配符吗?
不,hosts 文件不支持通配符。每个条目必须是特定的 IP 地址和主机名对。
如何解决主机文件问题?
确保文件的语法正确,IP 地址或主机名没有拼写错误。您还可以使用 ping 或 nslookup 等工具来测试已添加或修改的主机名的解析。