如何在 macOS (Mac OS X) 上编辑 Hosts 文件

Mac 的主机文件是一个小而重要的文本文档,能够将主机名映射到指定的 IP 地址。

如何在 macOS (Mac OS X) 上编辑 Hosts 文件

虽然现代 Internet 使用各种公共和私有 DNS 服务器来映射 IP 地址,但 hosts 文件是覆盖这些 DNS 服务器的便捷方式,允许您手动将网站地址指向所需的 IP 地址,或阻止访问通过指向未使用的或内部 IP 地址来完全访问站点。

让我们快速了解一下如何在 macOS 上编辑 Mac hosts 文件。

如何使用文本编辑编辑 Mac 主机文件

在 Mac OS X 中有两种主要的方式来编辑主机文件。

第一种是使用 TextEdit,因为 hosts 文件是纯文本文档。但是,您无法直接打开该文件,因为它位于文件系统的受保护区域。相反,我们需要将文件复制到不受保护的位置,例如桌面,对其进行编辑,然后再将其复制回来。

  1. 要查找主机文件,请打开 Finder,您可以通过单击桌面、屏幕左下方的笑脸查找器或按 指令 + 空格键 + 发现者.
  2. 现在,选择 下拉式菜单。

3. 然后,选择 转到文件夹 从菜单。

4. 在框中输入“/私有/等/主机” 进入框并按下 返回.

5. 一个新的 Finder 窗口将打开,您的 Mac 的主机文件将被选中。单击并将其拖出 发现者 窗口并将其放在桌面上。

要打开它,只需双击它,它就会在 TextEdit(或您选择的文本编辑器)中显示文件的内容。

阻止 IP 地址

默认情况下,/etc/hosts 文件比较简单。它包含多行描述性文本,这些文本用英镑或数字(也称为英镑或主题标签)符号 (#) “注释掉”。

任何以 # 符号开头的行都是注释,不会被 /etc/hosts 文件读取。对于每一行,井号后面的任何文本都将被计算机忽略,这使其成为向文件添加注释和描述的好方法。它还包含本地主机和广播主机的默认 IP 值。要编辑文件,您将在 broadcasthost 之后添加自己的行。

除了测试新开发的网站和网络托管迁移之外,编辑主机文件的另一个原因是阻止对特定网站的访问。

在我们的示例中,我们将假设我们使用的计算机是我们想要专门用于工作的设备,不允许我们在工作机器上被 Facebook 分心。

为此,请键入您要分配的 IP 地址,然后是两个选项卡和主机名。在我们的例子中,我们想要阻止 Facebook,所以我们将 www.facebook.com 映射到 0.0.0.0,作为无效的 IP 地址,将导致错误。

现在,每当我们尝试从 Mac 访问 www.facebook.com 时,Web 浏览器都无法加载该页面,希望能鼓励我们重新开始工作!

重新路由 Web 地址

或者,您可以输入有效站点的 IP 地址而不是 0.0.0.0,这将导致尝试访问 Facebook 的用户被定向到您选择的站点。

  1. 要确定网站的 IP 地址,您可以使用 dig 命令,这是 macOS 的标准配置。到 通过终端访问站点,我们只需打开终端,然后在 URL 上运行 dig 命令,然后将返回 IP 地址作为输出。
  2. 现在,输入“$ dig www.techjunkie.com + 短104.25.27.105

注意:+ 短选项将输出保留为我们需要的信息,即 IP 地址。

3. 记下返回的 IP 地址并在 Mac 主机文件映射中使用它。例如, 纽约时报 网站返回 IP 地址 170.149.172.130。如果我们在主机文件中将其映射到 Facebook,任何时候使用 Mac 的人尝试访问 Facebook,他们都会看到 纽约时报 改为加载。

注意:许多网站不允许您将域名映射到当前映射到该站点的 IP 地址,因此您在尝试时会遇到安全错误。

4. 通过在每一行输入新映射,您可以根据需要向主机文件添加任意数量的条目。对主机文件进行所需的更改后,将其保存在桌面上的当前位置。

5. 然后,将主机文件从桌面拖放回其原始位置 /私人/等.如果您已关闭指向此目录的 Finder 窗口,只需使用 Finder > 前往 > 前往文件夹 命令,上面讨论过,重新打开它。

6. 当您将 hosts 文件放回其原始位置时,macOS 会询问您如何处理已经存在的未修改的 hosts 文件。选择 代替 然后输入您的管理用户密码以验证传输。

修改后的主机文件现在就位后,启动您的 Web 浏览器来测试更改。

刷新您的 DNS 缓存

在大多数情况下,新映射应该立即生效,但如果您没有看到正确的行为,您可能需要刷新 DNS 缓存,迫使浏览器从您的主机文件中读取以确定映射。

  1. 要刷新 Mac 上的 DNS 缓存,请打开终端并使用以下命令(sudo 使您能够以机器管理员身份运行此命令):
  2. 现在,输入“须藤 killall -HUP mDNSResponder”并按 返回. 注意:您需要输入管理员密码才能执行此命令。
  3. 要让您的 Mac 清除您的 DNS 缓存,然后通过回显确认来确认它已清除您的缓存,请输入这两个用分号分隔的命令,如下所示:“sudo killall -HUP mDNSResponder;说 DNS 缓存已被刷新

然后,您的 Mac 将通过扬声器说“DNS 缓存已刷新”。

如何使用 Nano 在终端中编辑 Mac 主机文件

上一节中的步骤很简单,但如果您想避免复制主机文件,您可以使用 macOS 内置的 UNIX Nano 文本编辑器直接在终端中编辑它。

  1. 首先,启动终端,输入以下命令,然后按回车键。与所有 sudo 命令一样,您还需要输入管理员密码才能执行它: "须藤纳米 /private/etc/hosts
编辑主机文件 Nano

2.您现在将看到主机文件在 纳米 编辑或 vim 或您选择的其他编辑器。导航和编辑文件 纳米,使用键盘上的箭头键。

3. 正如我们对上面的 TextEdit 方法所做的那样,我们可以随意添加、编辑或删除主机名映射。因为我们使用 sudo 启动 Nano,任何更改都将被验证并直接保存到原始主机文件中,而无需将其复制到其主目录之外。

4. 完成更改后,按 控制-X 退出编辑器, 保存,和 返回 覆盖现有的主机文件。

正如我们之前提到的,如果您发现新映射无法正常工作,请确保刷新您的 DNS 缓存。

我们的示例提到在工作环境中阻止和重定向分散注意力的站点,但您也可以使用这些步骤手动阻止对恶意网站的访问,当然还有其他用途。

如果您犯了错误并且不确定如何修复它,您始终可以通过使用上述方法之一输入以下默认信息来恢复默认主机文件内容:

##

# 主机数据库

#

# localhost 用于配置loopback接口

# 系统启动时。不要更改此条目。

##

127.0.0.1 本地主机

255.255.255.255 广播主机::1 本地主机

fe80::1%lo0 本地主机

最后的想法

了解如何在 macOS 上编辑主机文件提供了一种便捷的方法来覆盖 DNS 服务器并手动将网站地址指向新的 IP 地址或阻止访问,通过执行上述步骤,您可以非常快速地完成此任务。

如果您是 Mac 用户并且发现本文有用,您可能想查看其他 TechJunkie 教程,包括如何查找 Mac 的确切 CPU 型号和如何在 Mac Mojave 中刷新 DNS。

您寻求编辑 Mac 的主机文件的原因是什么?效果如何?请在下面的评论中告诉我们!