在计算机网络中,hosts文件是一个用于将主机名映射到IP地址的本地文本文件。其优先级通常高于DNS查询,因此常用于本地开发测试、屏蔽特定网站或加速域名解析。查询hosts绑定,即检查该文件中是否存在针对特定域名的自定义映射。

hosts文件的位置因操作系统而异:
| 操作系统 | 文件路径 |
|---|---|
| Windows | C:\Windows\System32\drivers\etc\hosts |
| Linux / macOS | /etc/hosts |
| Android | /system/etc/hosts(需Root权限) |
| iOS | /etc/hosts(需越狱) |
查询方法:
1. 手动查看:使用文本编辑器(如Notepad++、Vim)以管理员或root权限打开上述路径的文件,直接搜索目标域名。
2. 命令行查询:在命令行终端中,可使用相应命令快速查看。
| 系统环境 | 命令示例 | 说明 |
|---|---|---|
| Windows | findstr /C:"example.com" C:\Windows\System32\drivers\etc\hosts | 在hosts文件中搜索“example.com”字符串 |
| Linux / macOS | grep "example.com" /etc/hosts 或 sudo cat /etc/hosts | grep "example.com" | 使用grep命令过滤出包含目标域名的行 |
3. 使用专业工具:一些网络工具或主机管理软件(如Gas Mask for macOS, Hosts File Editor for Windows)提供了图形化界面,方便查看和管理hosts条目。
hosts文件条目的标准格式为:
[IP地址] [主机名/域名] [#可选注释]
例如:127.0.0.1 localhost www.example.com # 将示例域名指向本地
一个IP地址后可跟多个域名,用空格分隔。修改后通常需要刷新DNS缓存才能生效。
刷新DNS缓存的常用命令:
| 操作系统 | 命令 |
|---|---|
| Windows | ipconfig /flushdns |
| macOS (Monterey及之后) | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| Linux (Systemd-resolved) | sudo systemd-resolve --flush-caches |
| Linux (NSCD) | sudo /etc/init.d/nscd restart 或 sudo service nscd restart |
扩展知识:hosts文件与DNS解析的优先级与安全
hosts文件是操作系统进行域名解析的第一站。当您在浏览器中输入一个网址时,系统会首先检查hosts文件。如果找到对应条目,则直接使用该IP地址,不再向DNS服务器发起查询。这一机制在带来便利的同时,也带来了安全风险(如hosts文件被恶意软件篡改,将银行或常用网站域名指向钓鱼网站)。因此,定期检查hosts文件内容也是系统安全维护的一部分。
在软件开发与测试中,hosts文件常用于将线上域名指向开发服务器或测试环境的IP,方便在不影响线上用户的情况下进行功能验证。此外,它也常被用于屏蔽广告或不良网站,通过将广告服务器的域名指向127.0.0.1或0.0.0.0来实现拦截。
请注意,随着HTTPS的普及,仅通过hosts文件重定向域名可能会遇到SSL/TLS证书错误,因为证书中的域名与实际的IP地址不匹配。在复杂的企业网络或容器化环境中,域名解析可能还会受到/etc/resolv.conf文件、DNS搜索域以及现代操作系统名称解析服务(如systemd-resolved)的多重影响。

查看详情

查看详情