hosts文件可实现域名解析优先映射,用于加速访问、屏蔽网站或开发测试,其位于/etc/hosts(macOS/Linux)或C:\Windows\System32\drivers\etc\hosts(Windows),需管理员权限修改,通过添加“IP 域名”条目定向解析,如127.0.0.1屏蔽广告域名,并刷新DNS缓存生效。
如果您尝试访问某个网站,但系统却将其指向错误的地址,或者您希望屏蔽某些网站或加速域名解析,则可能是 hosts 文件在起作用。以下是关于 hosts 文件功能与原理的详细说明。
本文运行环境:MacBook Air,macOS Sonoma。
一、hosts文件的基本功能
hosts 文件是一个本地的纯文本文件,用于建立主机名与 IP 地址之间的映射关系。当系统尝试解析某个域名时,会优先查询 hosts 文件中的记录,若找到匹配项,则直接使用对应的 IP 地址,不再向 DNS 服务器发起请求。这种机制可用于域名重定向、网站屏蔽或开发测试。
二、hosts文件的工作原理
操作系统在进行域名解析时,通常遵循一定的查询顺序。在大多数系统中,解析流程为:先检查本地 hosts 文件,若无匹配记录,则向配置的 DNS 服务器发送请求。这一过程由系统的解析库(如 glibc 中的 NSS 或 Windows 的 DNS Client 服务)控制。通过提前在 hosts 中定义映射,可以绕过公共 DNS 查询,实现快速响应或访问控制。
三、hosts文件的存储位置
不同操作系统中 hosts 文件的路径不同,但其作用一致。找到正确的文件位置是进行配置的前提。
1、在 macOS 和 Linux 系统中,文件位于 /etc/hosts。
2、在 Windows 系统中,文件位于 C:\Windows\System32\drivers\etc\hosts。
3、访问该文件通常需要管理员权限,普通用户无法直接修改。
四、修改hosts文件实现域名映射
通过手动添加域名与 IP 的对应关系,可以将特定域名解析到指定的 IP 地址,常用于本地开发或服务器测试。
1、以管理员身份打开终端(macOS/Linux)或记事本(Windows)。
2、打开对应路径下的 hosts 文件。
3、在文件末尾添加一行,格式为:IP地址 域名,例如:192.168.1.100 example.com。
4、保存文件并退出编辑器。
5、执行命令刷新 DNS 缓存,如 macOS 使用 sudo dscacheutil -flushcache。
五、使用hosts文件屏蔽网站
通过将目标域名指向无效地址(如本地回环地址),可以阻止系统访问该网站,常用于屏蔽广告或分心网站。
1、编辑 hosts 文件。
2、添加如下格式的条目:127.0.0.1 adserver.example.com。
3、保存文件后,任何对该域名的访问请求都会被重定向到本地,从而无法加载内容。
4、可批量添加多个广告或社交网站域名以增强屏蔽效果。