Mac的hosts文件是一个很小但很重要的文本文档,可以将主机名映射到指定的IP地址。 尽管现代Internet使用各种公共和私有DNS服务器来映射IP地址,但是hosts文件是覆盖这些DNS服务器的便捷方法,可让您手动将网站地址指向所需的IP地址,或阻止访问指向一个未使用或内部IP地址的站点。
以下是在macOS(以前称为Mac OS X)上编辑Mac主机文件的方法。
使用文本编辑Mac主机文件
在Mac OS X中,有两种主要的编辑主机文件的方法。第一种方法是使用TextEdit,因为主机文件只是一个简单的纯文本文档。 但是,您不能直接打开文件,因为它位于文件系统的受保护区域中。 相反,我们需要将文件复制到不受保护的位置(例如桌面),对其进行编辑,然后再复制回去。
要查找主机文件,请打开查找器,您可以通过单击桌面或屏幕左下方的笑脸查找器来访问查找器,然后执行以下步骤:
- 选择转到下拉菜单
- 然后从菜单中选择“ 转到文件夹 ”
- 在框中,在框中输入/ private / etc / hosts
- 按回车
- 将打开一个新的Finder窗口,并且将选择Mac的hosts文件,单击并将其拖到Finder窗口外,然后将其拖放到桌面上。
这将使我们自由地编辑主机文件。
要打开它,只需双击,它将在TextEdit(或您选择的文本编辑器)中显示文件的内容。
默认情况下,/ etc / hosts文件相对简单。 它包含多行描述性文字,并用井号或数字(也称为井号或井号标签)“#”加以注释。
任何以#号开头的行都是注释,/ etc / hosts文件不会读取。 因此,注释是您可以在主机文件中添加注释并注释掉您希望/ etc / hosts文件停止作为条目但不想删除的行的注释,以防将来需要时删除它们。
对于每一行,计算机都会忽略井号后的任何文本,这是在文件中添加注释和描述的好方法。 它还包含localhost和broadcasthost的默认IP值。 要编辑文件,请在broadcasthost之后添加自己的行。
在我们的示例中,我们假设我们使用的计算机是一个工作系统,我们只想将其用于工作,而不会让自己在工作机上被Facebook分散注意力。
为此,请键入您想要分配的IP地址,然后输入主机名。 在我们的例子中,我们要阻止Facebook,因此我们会将www.facebook.com映射到0.0.0.0,这将导致IP地址无效。
现在,每当我们尝试从Mac转到www.facebook.com时,Web浏览器将无法加载该页面,希望能鼓励我们重新开始工作!
要确定网站的IP地址,您可以使用macOS随附的dig命令。 要通过终端“挖掘”站点,我们只需打开终端,然后在URL上运行dig命令,然后将返回IP地址作为输出。
$ dig www.techjunkie.com +short
104.25.27.105
注意:+ short选项使输出仅保留我们所需的信息,即IP地址。
记下返回的IP地址,并在Mac主机文件映射中使用它。 例如, 纽约时报 网站www.nytimes.com返回的IP地址为170.149.172.130。 如果我们在主机文件中将其映射到Facebook,则每当使用Mac的某人尝试访问Facebook时,他们都会看到 《纽约时报》 加载。
要让您的Mac清除DNS缓存,然后通过回显确认来确认它已清除缓存,请输入以下两个命令,并用分号隔开,如下所示:
$ sudo killall -HUP mDNSResponder;say DNS cache has been flushed
在Nano终端中编辑Mac Hosts文件
上一节中的步骤很容易,但是如果要避免复制hosts文件,则可以使用macOS内置的UNIX Nano Text Editor在Terminal中直接对其进行编辑。
首先,启动Terminal,键入以下命令,然后按Return键。 与所有sudo命令一样,您还需要输入管理员密码才能执行该命令: $ sudo nano /private/etc/hosts
现在,您将看到在 Nano 编辑器或 vim 或您选择的其他编辑器中打开的hosts文件。 要在Nano中导航和编辑文件,请使用键盘上的箭头键。
完成更改后,请按Control-X退出编辑器,按Y进行保存,然后按Return覆盖现有的主机文件。
如前所述,如果您发现新映射无法正常工作,请确保刷新DNS缓存。
我们的示例提到了在工作环境中阻止和重定向分散注意力的站点,但是您还可以使用以下步骤手动阻止对恶意网站的访问,当然也可以阻止其他用途。
如果您犯了一个错误并且不确定如何解决它,则始终可以通过使用上述方法之一输入以下默认信息来恢复默认的主机文件内容:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost::1 localhost
fe80::1%lo0 localhost
如果您是Mac用户,并且认为本文很有用,则可能需要查看其他TechJunkie教程,包括如何查找Mac的确切CPU模型和如何在Mac Mojave中刷新DNS。
您寻求编辑Mac主机文件的原因是什么? 效果如何? 请在下面的评论中告诉我们!