如何使用终端在Mac OS X 中编辑主机文件
目录:
需要在Mac 上编辑或修改hosts 文件?本指南将向您展示如何在 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 进行一些编辑!
- Launch Terminal,位于/Applications/Utilities/或通过Spotlight启动
- 在提示符下键入以下命令:
- 在要求时输入管理员密码,您将不会像往常一样在屏幕上看到使用命令行输入的密码
- 在nano中加载hosts文件后,使用箭头键导航到hosts文件的底部进行修改
- 完成后,按 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 -flushcache;sudo 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的修改
- 你可以通过主机来阻止网站,将它们添加到文件中并发送到任何地方,阻止访问
- 您可以使用相同的逻辑在本地重定向网站,非常适合设置测试域
- 进行一些修改后,可能需要在更改生效之前使用dscacheutil 刷新DNS 缓存
- For juggling multiple hosts files consider using a manager app like GasMask
- 如果hosts文件声称被锁定,那是因为你没有在编辑前加上“sudo”命令
- 如果您计划进行重大修改,或者这是您第一次编辑文件(过程如下所述),请考虑对主机进行备份
如果您计划进行重大更改或只是想尝试修改并看看会发生什么,那么备份主机文件可能是个好主意,一个简单的方法是使用此命令会将备份存储在您的主目录 ~/Documents/ 文件夹中:
sudo cp /private/etc/hosts ~/Documents/hosts-backup
那么,如果你想将修改后的hosts恢复到原文件的备份中,你只需要像这样交换路径并重新命名文件:
sudo cp ~/Documents/hosts-backup /private/etc/hosts
就是这样,尽管您可能需要刷新 DNS 以使更改生效。
最后,值得一提的是,如果您希望完全避免使用终端和命令行,您可以尝试更简单的方法,即使用首选项窗格通过系统修改主机的内容取而代之的是偏好。不过一般来说,我们建议只使用直接内置于 Mac 中的工具。
如果您有任何问题或提示,请在评论中告诉我们。