hosts文件用于将域名(主机名)映射到IP地址。它在所有操作系统(包括Linux,Windows和macOS)都是一个纯文本文件。hosts文件允许你设置指定映射域名的IP地址。这个更改只作用于当前计算机,而不会影响全域网的解析方式。
hosts文件优先于DNS。当你键入要访问的网站的域名时,必须将域名转换为其对应的IP地址。操作系统首先检查其hosts文件中是否存在相应的域名,如果该域名没有条目,它将查询配置的DNS服务器以解析指定的域名。
如果你想在不更改域DNS设置的情况下测试你的网站,这将非常有用。例如,你要将网站迁移到新服务器,并且希望在将域指向新服务器之前验证它是否完全正常运行。hosts文件还可用于阻止计算机上的网站。
在本文中,我们将提供有关如何在Linux,macOS和Windows上修改hosts文件的说明。
主机文件格式
代码语言:javascript复制hosts文件中的条目具有以下格式:
IPAddress DomainName [DomainAliases]
代码语言:javascript复制IP地址和域名应至少由一个空格或制表符分隔。以
#
开头的行是被忽略的。要向hosts文件添加条目,只需在文本编辑器中打开该文件即可。下面是一个示例主机文件:
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 rumenz.com rumenz
127.0.0.1 localhost
主机文件更改会立即生效,除非应用程序缓存DNS解释结果。
这个时候我们就可以在浏览器地址栏输入rumenz.com 或 rumenz访问我们在本机部署的网站程序。
在Linux中修改hosts文件
在Linux中,hosts文件位于:
/etc/hosts
。以下说明适用于Linux所有发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。在终端窗口中,使用你喜欢的文本编辑器打开hosts文件:
sudo vim /etc/hosts
出现提示你的sudo密码。
在Windows中修改hosts文件
代码语言:javascript复制在Windows中,hosts文件位于:
c:WindowsSystem32Driversetchosts
。以下说明适用于Windows 10和Windows 8。
- 按Windows键并在搜索字段中键入记事本。
- 右键单击“记事本”图标,然后选择“以管理员身份运行”。
- 在记事本中,单击文件,然后单击打开。在“文件名”字段中,粘贴
c:WindowsSystem32driversetchosts
127.0.0.1 rumenz.com rumenz
127.0.0.1 localhost
- 向下滚动到文件末尾并添加新条目:
- 单击
File
> 保存更改Save
修改macOS中的hosts
文件
代码语言:javascript复制在macOS中,hosts文件位于:
/etc/hosts
。以下说明适用于所有macOS版本。在终端窗口中,使用你喜欢的文本编辑器打开hosts文件:
sudo vim /etc/hosts
127.0.0.1 rumenz.com rumenz
127.0.0.1 localhost
代码语言:javascript复制出现提示时输入管理密码。
dscacheutil -flushcache