在计算机网络世界中,当我们输入一个网址(如 www.example.com)时,计算机需要通过一系列的查询才能找到对应的服务器IP地址,这个查询过程的核心就是DNS(Domain Name System,域名系统),在计算机查询公共DNS服务器之前,它会首先查看一个本地的“私人通讯录”——hosts文件,通过向这个文件中添加条目,我们可以手动地“host添加dns”,实现对域名解析的精确控制,这是一种强大且高效的技术,广泛应用于开发、测试和网络管理等多种场景。

什么是Hosts文件?
hosts文件是一个纯文本文件,它存在于所有主流操作系统中(如Windows、macOS、Linux),其最原始的作用是记录主机名和IP地址的映射关系,在互联网发展的早期,DNS系统尚未普及,hosts文件是网络中所有计算机进行域名解析的唯一方式,虽然DNS已成为主流,但hosts文件并未被淘汰,反而因其优先级高于DNS查询的特性,成为了许多高级用户和开发者手中的利器,当系统需要解析一个域名时,会按照“hosts文件 → DNS缓存 → DNS服务器”的顺序进行查询,只要在hosts文件中找到了对应记录,系统便会直接使用该记录,不再向外部DNS服务器发起请求。
为什么要修改Hosts文件?
通过“host添加dns”的方式修改hosts文件,可以实现多种实用的目的:
- 本地开发与测试:对于网站开发者而言,这是最常见的用途,当网站在本地服务器(如本机的
0.0.1)或内部测试服务器上搭建完成后,开发者可以通过在hosts文件中添加一条记录,将一个正式的域名指向这个本地IP,这样,就可以在浏览器中通过真实的域名来访问和测试网站,模拟真实的线上环境,而无需将网站部署到公网服务器。 - 屏蔽恶意或广告网站:将不想访问的网站(如广告服务器、钓鱼网站或恶意软件的通信域名)的域名指向一个无效的IP地址,如
0.0.0或0.0.1,这样一来,所有尝试访问这些域名的请求都会被重定向到本机或一个空地址,从而达到屏蔽效果,提升上网安全性和体验。 - 加速网站访问:在某些情况下,某个网站可能拥有多个CDN(内容分发网络)节点,通过
ping或其它工具找到延迟最低的节点IP地址,并将其与域名一同添加到hosts文件中,可以强制计算机连接到这个最快的服务器,理论上可以加快网站的加载速度。 - 访问局域网服务:在没有搭建本地DNS服务器的小型局域网中,可以通过在每台计算机的
hosts文件里添加记录,来方便地通过域名访问内部的打印机、文件服务器或其他设备。
如何在不同操作系统中进行修改
修改hosts文件的核心在于找到文件路径并以管理员权限进行编辑,下表小编总结了主流操作系统的具体操作方法。
| 操作系统 | 文件路径 | 推荐编辑方法 |
|---|---|---|
| Windows | C:\Windows\System32\drivers\etc\hosts |
以“管理员身份”运行记事本或其它文本编辑器。 通过“文件”->“打开”浏览到上述路径。 编辑并保存。 |
| macOS / Linux | /etc/hosts |
打开“终端”(Terminal)应用。 输入命令 sudo nano /etc/hosts(或使用vim等编辑器)。输入密码后进行编辑。 按 Ctrl+X退出,按Y确认保存。 |
添加记录的格式非常简单:

IP地址 域名
要将本地域名dev.test.com指向本机,可以添加如下一行:
0.0.1 dev.test.com
重要注意事项
在进行“host添加dns”操作时,有几点需要特别注意:
- 备份文件:在修改之前,最好将原始的
hosts文件复制一份作为备份,以防出现问题时可以快速恢复。 - 语法正确:确保IP地址和域名之间用至少一个空格或制表符(Tab)隔开,每行只能有一条记录,以开头的行为注释行,系统会忽略。
- 刷新DNS缓存:修改
hosts文件后,新的记录可能不会立即生效,这是因为操作系统和浏览器通常会缓存DNS查询结果,需要手动刷新DNS缓存才能使更改立即生效。- Windows: 在命令提示符(管理员)中运行
ipconfig /flushdns。 - macOS: 在终端中运行
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。 - Linux: 不同发行版命令不同,通常可以尝试
sudo systemctl restart nscd或sudo /etc/init.d/nscd restart。
- Windows: 在命令提示符(管理员)中运行
- 及时清理:当开发测试完成或不再需要某个映射时,应及时从
hosts文件中删除或注释掉该条目,避免留下不必要的记录,以免未来引起混淆或访问问题。
掌握通过hosts文件添加DNS映射的技能,就像是掌握了计算机网络流量的一个“本地开关”,它虽然简单,却能为开发、网络安全和网络排错等工作带来极大的便利和灵活性。
相关问答FAQs
Q1: 为什么我按照步骤修改了hosts文件,但访问网站时还是没有生效?

A1: 这是最常见的问题,通常由以下几个原因导致:
- DNS缓存未刷新:这是最主要的原因,系统或浏览器仍然使用的是旧的缓存记录,请务必按照您操作系统的指引,执行刷新DNS缓存的命令。
- 浏览器缓存:有时浏览器自身也会缓存,可以尝试使用无痕/隐私模式访问,或者直接在浏览器设置中清除缓存。
hosts文件格式错误:请再次检查您添加的条目,确保IP地址和域名之间有正确的空格,且没有多余的字符,请确保您编辑的是正确的hosts文件,并以管理员/sudo权限成功保存了。- 安全软件拦截:某些安全软件或防火墙可能会监控并阻止对
hosts文件的修改,导致您的更改实际上并未写入,可以尝试暂时禁用相关软件后再进行修改。
Q2: 修改hosts文件对电脑安全有风险吗?
A2: 这个行为本身是完全安全的,因为hosts文件是操作系统的一个标准组成部分,它不会“损害”您的电脑硬件或系统,风险来源于“内容”:
- 正常使用:如果您是用于开发、屏蔽广告等正当目的,并且清楚自己在添加什么,那么它是安全的。
- 恶意篡改:病毒、木马或恶意软件可能会在您不知情的情况下修改
hosts文件,将您访问的银行、电商等网站的域名重定向到它们伪造的钓鱼网站,以窃取您的账号密码,如果发现浏览器行为异常(如经常弹出无关网站),可以检查一下hosts文件是否存在可疑条目,主动、知情地修改是安全的,但需要警惕它被恶意利用。