hosts 文件是一个本地计算机的域名解析文件,它可以将域名映射到指定的 IP 地址,优先级高于 DNS 服务器
hosts 文件的主要用途:
1. 本地开发调试
# 将本地服务映射到自定义域名
127.0.0.1 localhost
127.0.0.1 myproject.test
127.0.0.1 api.myproject.test
# 访问 myproject.test 实际上是访问本机(127.0.0.1)
2. 屏蔽特定网站
# 将广告、恶意网站指向本地或无效地址
127.0.0.1 www.ad-site.com
0.0.0.0 tracking.site.com
# 访问这些域名时会失败或显示空白
3. 测试环境指向
# 将正式域名临时指向测试服务器
192.168.1.100 www.example.com
# 访问 www.example.com 实际上访问内网测试服务器
4. 加速访问(跳过 DNS 查询)
# 直接将常用网站指向其 IP
203.0.113.5 www.github.com
# 绕过 DNS 解析,直接访问指定 IP
5. 网络安全
# 屏蔽恶意域名
0.0.0.0 malware-site.com
0.0.0.0 phishing-site.com
hosts 文件位置:
| 操作系统 | 路径 |
|---|---|
| Windows | C:\Windows\System32\drivers\etc\hosts |
| macOS/Linux | /etc/hosts |
hosts 文件示例:
# 注释以 # 开头
127.0.0.1 localhost # 本地回环地址
::1 localhost # IPv6 本地回环
# 开发环境配置
127.0.0.1 dev.myapp.com
192.168.1.10 staging.myapp.com
# 屏蔽广告
0.0.0.0 ads.google.com
0.0.0.0 doubleclick.net
工作流程:
用户访问域名 → 先检查 hosts 文件 → 找到则使用对应 IP → 没找到则查询 DNS
↑
优先
注意事项:
- 权限问题:需要管理员/root权限才能修改
- 语法:IP在前,域名在后,用空格或制表符分隔
- 生效:修改后可能需要刷新DNS缓存:
- Windows:
ipconfig /flushdns - macOS:
sudo killall -HUP mDNSResponder - Linux:
sudo systemctl restart systemd-resolved
- Windows:
- 备份:修改前建议备份原文件