如何在Linux、Windows和macOS上编辑hosts文件

hosts文件用于将域名映射到IP地址。它在所有操作系统包括Linux,Windows和macOS都是一个纯文本文件

4 min read
By myfreax
如何在Linux、Windows和macOS上编辑hosts文件

hosts文件用于将域名映射到IP地址。它在所有操作系统包括Linux,Windows和macOS都是一个纯文本文件。

hosts文件允许您设置指定域名映射的IP地址。这个更改只作用于当前计算机,而不会影响全域网的解析方式。

hosts文件对域名的优先于DNS的域名解释。当您键入要访问的网站域名时,必须将域名转换为其对应的IP地址。

操作系统首先检查其hosts文件中是否存在相应的域名,如果该域名没有记录,它将查询配置的DNS服务器以解析指定的域名。

如果您想在不更改DNS设置的情况下测试您的网站,这将非常有用。hosts文件还可用于拦截指定网站的域名。

例如,您要将网站迁移到新服务器,并且希望在将域指向新服务器之前验证它是否完全正常运行。

在教程中,我们将提供有关如何在Linux,macOS和Windows上修改hosts文件的说明。主机文件更改会立即生效,除非应用程序缓存DNS解释结果。

hosts文件中的记录具有IPAddress DomainName [DomainAliases]格式。IP地址和域名应至少由一个空格或制表符分隔。以#开头的行是被忽略的。

要向hosts文件添加记录,只需在文本编辑器中打开该文件即可。下面是一个示例主机文件。

# Static table lookup for hostnames.
# See hosts(5) for details.

127.0.1.1 myfreax.desktop myfreax
127.0.0.1 localhost

Linux hosts文件

在Linux中,hosts文件位于/etc/hosts。以下说明适用于Linux所有发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。

在终端窗口中,使用您喜欢的文本编辑器打开hosts文件,在本教程我们使用vim打开文件,运行命令sudo vim /etc/hosts出现提示时输入您的sudo密码。

vim在没有GUI的服务器非常常用。我们建议你学习如何使用vim

如果hosts文件修改没有生效,你可能需要清除DNS缓存,请参考我们的教程如何清除DNS缓存

如何清除DNS缓存 | myfreax
DNS缓存是一个临时数据库,用于存储已解释的DNS查找信息。换句话说,每当您访问网站时

Windows hosts文件

在Windows中,hosts文件位于c:\Windows\System32\Drivers\etc\hosts。以下说明适用于Windows 10,Windows 8,Windows 11。

按Windows键并在搜索字段中键入记事本。右键单击记事本图标,然后选择以管理员身份运行

在记事本中,单击文件,然后单击打开。在文件名字段中,粘贴c:\Windows\System32\drivers\etc\hosts

向下滚动到文件末尾并添加新记录,单击文件> 保存

如果hosts文件修改没有生效,你可能需要清除DNS缓存,请参考我们的教程如何清除DNS缓存

MacOS hosts文件

在macOS中,hosts文件位于/etc/hosts。以下说明适用于所有macOS版本。

在终端窗口中,使用您喜欢的文本编辑器打开hosts文件,在本教程我们使用vim打开文件,运行命令sudo vim /etc/hosts出现提示时输入管理密码。

vim在没有GUI的服务器非常常用。我们建议你学习如何使用vim。在完成更改后请记得运行命令dscacheutil -flushcache刷新DNS缓存。

如何清除DNS缓存 | myfreax
DNS缓存是一个临时数据库,用于存储已解释的DNS查找信息。换句话说,每当您访问网站时

至此,您应该很好地理解hosts文件的工作方式以及如何对文件进行修改。如果要撤消更改,只需打开文件并删除添加的行。