所有具有网络支持的操作系统都有一个主机文件,以便将主机名转换为IP地址。每当您通过输入主机名打开网站时,系统都会通读hosts文件以检查相应的IP,然后将其打开。hosts文件是一个简单的文本文件,位于Linux和Mac OS(/ etc / hosts)的etc文件夹中。Windows也有一个主机文件,在Windows上,您可以在Windows \ System32 \ drivers \ etc \中找到它。

看起来是这样的:

Linux上的/ etc / hosts文件

根据我们提到的内容,您可能希望此文件包含很长的IP和相应的主机名列表。但这不是事实。主机文件仅包含多行;

  • 默认情况下,第一部分包含本地主机和计算机的主机名和IP地址。这是您通常会进行修改以进行所需更改的部分。
  • 第二部分包含有关支持IPv6的主机的信息,您几乎不需要编辑这些行。

每当您输入地址时,系统都会检查hosts文件是否存在;如果它在那里,您将被定向到相应的IP。如果在hosts文件中未定义主机名,则系统将检查Internet的DNS服务器以查找相应的IP并相应地重定向您。

为什么要编辑/ etc / hosts文件?

通过编辑主机文件,您可以实现以下目的:

  • 封锁网站
  • 处理攻击或解决恶作剧
  • 为本地服务器上的位置创建别名
  • 覆盖您的DNS服务器提供的地址
  • 控制对网络流量的访问

如何编辑/ etc / hosts文件?

您只能以超级用户身份编辑位于/ etc / hosts的hosts文本文件。您首先必须在Linux终端中的文本编辑器(例如VI编辑器,Nano编辑器或gedit等)中将其打开。然后,您将进行所需的更改并保存文件,以使这些更改生效。

在本文中,我们将使用Nano编辑器来编辑文件。请输入以下命令:

$ sudo nano / etc / hosts

要么

$ sudo gedit / etc / hosts

(用于gedit)

使用nano编辑器编辑/ etc / hosts文件

如前所述,我们将编辑hosts文件的第一部分,其中定义了IP地址和主机名。我们将解释以下两种使用hosts文件的方式:广告

  • 封锁网站
  • 通过别名访问远程计算机

封锁网站

您可以通过将网站重定向到本地主机的IP或默认路由来阻止该网站。

例如,如果要阻止google.com,可以将以下文本添加到文件中:

127.0.0.1 www.google.com

现在,当我们打开google网站时,我们的系统将从hosts文件中获取本地localhost(127.0.0.1)的IP并将其重定向到该IP地址,而不是从我们的DNS服务器重定向到google IP。

要么

0.0.0.0  www.google.com

现在,当我们打开google网站时,我们的系统将从主机文件中获取默认路由的IP地址(0.0.0.0),然后将其重定向到该地址,而不是从DNS服务器重定向到该google IP。

这就是编辑后的文件的样子。请按Ctrl + X保存更改。

编辑主机文件以阻止对域的访问

现在,当您尝试从浏览器打开www.google.com时,将看到以下错误消息:

网站在桌面上被成功阻止

请注意,我们在hosts文件中定义了完整的地址www.google.com,而不只是主机名google.com,因为如果仅定义后者,现代浏览器有时会绕开该块。

您还可以在主机文件中使用一些预定义的阻止列表:https :  //github.com/StevenBlack/hosts

通过别名访问远程计算机

假设我们有一个要访问的位于本地网络上的服务器。除非在本地DNS上定义了服务器的IP,否则我们通常必须输入服务器的IP才能访问它。避免一次又一次键入IP的一种方法是,在主机文件中为服务器分配别名,如下所示:

192.168.1.10 myserver

IP对应于我们要访问的服务器的位置,而myserver是我们要使用的新别名。

将域重定向到新IP

现在,当我们保存文件并在地址栏中键入myserver时,我们将被重定向到我们的远程服务器。

我们了解到,通过对hosts文件进行非常简单的更改,我们可以根据需要进行自定义,从而重定向网络流量。我们还可以通过将hosts文件恢复为默认值来摆脱网络攻击或恶作剧。

Linux上的Hosts文件

发表评论

电子邮件地址不会被公开。 必填项已用*标注