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

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

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

DNS 工作方式

hosts文件对域名的解释优先于DNS解释。当您在Chrome浏览器访问站点时,必须将域名转换为其对应的IP地址。

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

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

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

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

Linux hosts文件

在Linux,包括Ubuntu,CentOS,RedHat,Debian和Linux Mint。hosts文件位于/etc/hosts。

要在Linux修改Host文件,请使用您喜欢的文本编辑器打开hosts文件,在本教程我们使用vim打开文件。运行命令sudo vim /etc/hosts

在出现提示时输入您当前用户的密码。编辑完成后,保存文件并退出vim。通常Hosts的修改会马上生效。

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

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

Windows hosts文件

在Windows,包括Windows 10,Windows 8,Windows 11。hosts文件都位于c:\Windows\System32\Drivers\etc\hosts

要在Windows修改Host文件。右键单击记事本图标,然后选择以管理员身份运行。打开记事本。

在记事本中,点击文件,然后点击打开。在文件名输入框,粘贴host文件的绝对路径c:\Windows\System32\drivers\etc\hosts打开host文件。

向下滚动到文件末尾并添加新记录,然后点击文件,最后是点击保存。通常Hosts的修改会马上生效。

MacOS hosts文件

在MacOS,hosts文件位于/etc/hosts。要在MacOS修改Host文件,请使用您喜欢的文本编辑器打开hosts文件,

在本教程我们使用vim打开文件。运行命令sudo vim /etc/hosts。在出现提示时输入您当前用户的密码。

编辑完成后,保存文件并退出vim。通常Hosts的修改会马上生效。如果你的hosts文件修改没有生效,你可能需要清除DNS缓存。

sudo vim /etc/hosts
dscacheutil -flushcache

结论

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