网站搜索

如何在 Windows、Mac 或 Linux 上编辑主机文件


摘要:在 Windows 上,以管理员身份启动记事本(或其他文本编辑器)。打开位于 C:\Windows\System32\drivers tc 下的 hosts 文件。在 Mac 和 Linux 上,选择使用文本编辑器编辑 /etc/hosts 文件——确保使用 sudo 启动编辑器。

有时您可能需要编辑计算机上的主机文件。您的主机文件可能在攻击或恶作剧中被恶意编辑。或者,您可能只想控制对某些网站的访问或控制网络流量。

自 ARPANET 时代以来,计算机就有了主机文件。在实施 DNS 系统之前的几十年里,hosts 文件一直用于解析主机名。由于它们用于辅助网络名称解析,因此主机文件逐渐成为大量文档。

Microsoft、Apple 和其他操作系统开发人员保留了主机文件,这就是为什么它在 Windows、macOS 和 Linux 之间差异很小的原因。语法在所有平台上基本保持不变。大多数主机文件将有多个用于环回的条目。我们可以将其用于典型语法的基本示例。

第一部分是将地址重定向到的位置,第二部分是您要重定向的地址,第三部分是评论。它们可以用空格分隔,但为了便于阅读,通常用一个或两个制表符或等量的空格分隔。

127.0.0.1 localhosts #loopback

现在让我们看看在不同操作系统中访问主机文件。

在 Windows 10 或 Windows 11 上编辑主机文件

hosts 文件仍然存在于 Microsoft 最新最好的系统中——Windows 10 和 Windows 11——尽管按照计算机标准来说它已经很古老了。然而,它在现代 Windows 网络中用得并不多。

与 Windows 文件夹中的其他文件一样,hosts 文件受到保护。您需要管理权限才能移动、编辑或删除文件。

您可以使用任何想要修改主机文件的纯文本编辑器,但是记事本完全可以胜任这项任务。你不需要为了这个工作去下载另一个。

点击“开始”按钮,在搜索中输入“记事本”,然后右键单击它并点击“以管理员身份运行”。

单击左上角的“文件”,单击“打开”,然后导航至:

C:\Windows\System32\drivers\etc

确保将选择更改为“所有文件 (*.*)”而不是“文本文档 (*.txt)”。 hosts 文件没有文件扩展名,因此如果您只显示文本文档,它不会显示。更改该设置后,找到“hosts”文件并单击“打开”。

然后,您可以根据需要编辑主机文件。有一些明显的事情可以用它来做,比如阻止或重新路由互联网流量。

在 Windows 8 或 8.1 上编辑主机文件

在 Windows 8 和 8.1 上编辑主机文件与 Windows 10 或 11 基本相同。

只需搜索记事本,在搜索结果列表中右键单击记事本,然后选择“以管理员身份运行。

打开记事本后,单击右上角的“文件”,单击“打开”,然后导航到 /etc/ 文件夹:

C:\Windows\System32\drivers\etc\hosts

您将能够像编辑任何其他文件一样编辑主机文件。如果需要,您可以使用它来阻止对网站的访问。

Windows 7的

在 Windows 7 中访问主机文件与在较新版本的 Windows 中相同。您需要以管理员身份运行记事本,导航到主机文件,然后打开它。

有几种方法可以做到这一点。首先是找到记事本,右键单击它,点击“以管理员身份运行”,然后导航到主机文件。它位于:

C:\Windows\system32\drivers\etc\

或者,您可以按 Windows+R 打开运行窗口,然后输入以下命令:

notepad c:\windows\system32\drivers\etc\hosts

该命令将以管理员身份运行记事本并自动打开指定的文件。

打开记事本后,您可以编辑文件。在此示例中,我们将阻止 Facebook。为此,只需在 # 标记后输入以下内容。

0.0.0.0    www.facebook.com

现在您已经编辑了 Hosts 文件,请务必保存它。

现在请注意,如果我们尝试在 IE 中访问 Facebook,我们将无法访问该页面。

我们也无法在谷歌浏览器中找到它……(最后查看注释)。此外,有关编辑 Hosts 文件的更多信息,请查看 The Geek 关于如何创建快捷方式以快速编辑 Hosts 文件的文章。

在 Ubuntu 上编辑主机文件

在 Ubuntu(和大多数 Linux 发行版)中,您可以直接在终端中编辑主机文件。您可以使用您最喜欢的命令行编辑器或您最喜欢的 GUI 文本编辑器。对于这个例子,我们将使用 Vim,因为它是 Linux 中传统的文本编辑器之一。与 Windows 一样,Ubuntu 的主机文件位于 /etc/ 文件夹中,但此处它位于驱动器的根目录中。主机文件受到保护,您的普通用户帐户将无法编辑它。

您需要启动以 sudo 开头的 Vim,它在概念和功能上类似于 Windows 操作系统上的“以管理员身份运行”。打开一个终端,然后输入:

sudo vim /etc/hosts

在执行命令之前,您需要输入密码。

现在它已打开,我们可以对其进行编辑以将 Facebook 重定向到无。您会注意到在 Ubuntu 中还有一个用于 IPv6 的部分。

在大多数情况下,您可以忽略 IPv6 部分;只需编辑 IPv4 部分即可满足您的需要。

现在我们可以保存文件并尝试访问 Facebook.com。当您将主机文件中的地址设置为 0.0.0.0 时,您的计算机无法访问 Facebook,并抛出错误:“无法连接”。

在任何 macOS 版本上更改主机文件

在 macOS 中,访问主机文件与 Ubuntu 非常相似。从终端开始并使用您最喜欢的编辑器——如果您愿意,它甚至可以是基于 GUI 的文本编辑器,但从终端使用命令行编辑器更容易。

该文件看起来很像 Windows 和 Linux 中的主机文件。我们再次将 Facebook 重定向到 0.0.0.0。

Safari,就像 Windows 和 Ubuntu 上的浏览器一样,将无法连接到 Facebook。

为什么 Hosts 文件不阻止连接?

所有主要的现代浏览器都提供 DNS Over HTTPS (DOH)。 DOH 会加密您的 DNS 请求,这样它们就不会被可能正在窥探的第三方拦截和读取——总的来说,这是一件好事。

出于我们的目的,它限制了主机文件的实用性。如果您的浏览器遵从 Windows 操作系统中指定的 DNS 服务器,则主机文件只能用于阻止互联网流量。许多浏览器会自动启用 DNS Over HTTPS 并使用他们自己的 DNS 服务器。这导致浏览器完全绕过主机文件。可以强制您的浏览器使用 Windows 指定的 DNS 服务器,但您必须深入了解浏览器的设置。

这应该让您开始了解 Hosts 文件以及它如何帮助保护您的计算机。在适当的情况下,您可以使用它来阻止您不希望 PC 访问的站点。