如何使用终端在 Mac OS X 中编辑主机文件
需要在 Mac 上编辑或修改主机文件?本指南将向您展示如何在 Mac OS 中编辑主机文件。您会发现 Mac OS X 中的主机存储在 /private/etc/hosts 中,但也可以在更传统的 /etc/hosts 位置访问它。也就是说,如果你想编辑主机,你会想要定位位于 /private/etc/ 中的文件。
我们将介绍如何在 macOS Big Sur、MacOS Mojave、MacOS Catalina、MacOS High Sierra、MacOS Sierra、OS X El Capitan、Yosemite、OS X Lion、OS X Mountain Lion 和OS X Mavericks,这将使用名为 nano 的简单文本编辑器通过命令行完成。不要让命令行或终端听起来令人生畏,因为它不是,我们将使编辑 Mac 主机文件的整个过程变得超级简单。
如何在 Mac OS 上编辑主机文件
让我们开始对 macOS 和 Mac OS X 中的 /etc/hosts 进行一些编辑吧!
- 启动终端,位于 /Applications/Utilities/ 或通过 Spotlight 启动
- 在提示符下键入以下命令:
- 在要求时输入管理员密码,您不会像往常一样在屏幕上看到命令行输入的密码
- 在 nano 中加载主机文件后,使用箭头键导航到主机文件的底部进行修改
- 完成后,按 Control+O,然后按 ENTER/RETURN 将更改保存到 /private/etc/hosts,然后按 Control+X 退出 nano
- 完成后退出终端
sudo nano /private/etc/hosts
您可以使用 ping、Safari 或任何其他网络应用程序立即验证您的主机修改。
更改会立即生效,但某些调整可能需要伴随 DNS 刷新 可以在 macOS 10.12+ 到 OS X 10.9 中使用以下命令完成:
dscacheutil -flushcachesudo killall -HUP mDNSResponder
使用该命令刷新 DNS 缓存时,您需要输入管理员密码。
如果您想在自己动手之前了解整个过程是如何完成的,请观看下面的视频,了解在 Mac OS X 上修改主机文件以阻止网站“yahoo.com”加载的演示:
<
注意:该过程与旧版本的 Mac OS X 相同,但如果 Mac OS X 版本过时,主机路径可能是 /etc/hosts。
编辑主机文件时要考虑的提示
以下提示超越了 Mac OS X,适用于任何主机文件,无论是在 Mac、Windows 还是 Linux 上。
- 前面的 IP 地址是以下域将解析到的位置
- 始终将新主机添加到他们自己独特的线路中
- #符号起到注释的作用,可以用来给hosts条目添加注释,也可以用来注释掉hosts的修改
- 您可以通过主机阻止网站,方法是将它们添加到文件中并将它们发送到任何地方,阻止访问
- 您可以使用相同的逻辑在本地重定向网站,非常适合设置测试域
- 通过一些修改,可能需要刷新 DNS 缓存 在更改生效之前使用 dscacheutil
- 要处理多个主机文件,请考虑使用GasMask 等管理器应用一个>
- 如果主机文件声称被锁定,那是因为您没有在编辑前加上“sudo”命令
- 如果您计划进行重大修改,或者这是您第一次编辑文件(过程如下所述),请考虑对主机进行备份
如果您计划进行重大更改或只是想尝试修改并看看会发生什么,那么备份主机文件可能是个好主意,一个简单的方法是使用此命令,这将将备份存储在您的家 ~/Documents/ 文件夹中:
sudo cp /private/etc/hosts ~/Documents/hosts-backup
然后,如果你想将修改后的主机恢复到原始文件的备份,你只需要像这样交换路径并重新命名文件:
sudo cp ~/Documents/hosts-backup /private/etc/hosts
就是这样,尽管您可能需要刷新 DNS 才能使更改生效。
最后,值得一提的是,如果您希望完全避免使用终端和命令行,您可以 尝试使用首选项窗格的更简单方法,而不是通过系统首选项来修改主机的内容。不过一般来说,我们建议只使用直接内置于 Mac 中的工具。
如果您有任何问题或提示,请在评论中告诉我们。