这是一个非常实用的小技巧,修改hosts 文件本质上是在你本机上手动指定某个域名对应的 IP 地址,优先级高于你电脑设置的 DNS 服务器。

重要提醒:hosts 文件修改的是“域名到 IP 的映射”,而不是 “DNS 服务器地址”,如果你想让电脑使用一个完全不同的 DNS 服务器(比如把 114.114.114.114 换成 8.8.8.8),那是修改电脑的网络适配器设置,和hosts 文件无关。
下面教你如何具体操作,并给出常见场景。
文件位置因系统而异:
Windows:C:\Windows\System32\drivers\etc\hosts
macOS / Linux:/etc/hosts

因为这个文件是系统保护文件,普通编辑权限可能不够。
1、以管理员身份运行记事本(Notepad)。
- 按Win 键,输入记事本,右键点击“记事本”,选择“以管理员身份运行”。
2、 在记事本中,点击文件 ->打开。
3、 在路径栏输入C:\Windows\System32\drivers\etc\hosts。

- *注意:一开始你可能看不到这个文件,因为它是无后缀名的,直接输入路径即可。
4、 选择 **“所有文件 (\*.\*)”** 才能看到它。
5、 打开并进行编辑。
6、保存时,通常需要选择保存到原路径,覆盖原文件。
打开终端(Terminal),使用sudo 命令配合你喜欢的编辑器(如nano 或vim)。
以 nano 为例 sudo nano /etc/hosts 以 vim 为例 sudo vim /etc/hosts
输入你的电脑密码(输入时屏幕上不显示字符)即可编辑。
第三步:理解并编辑 hosts 文件的语法
文件里的每一行就是一条规则,格式非常简单:
IP地址 域名
IP地址 和域名 之间用空格或 Tab 隔开。
# 开头**的行是注释,系统会忽略。
常见操作场景:
你想让某个域名指向一个无效的 IP,这样电脑就无法连接到它。
屏蔽百度 127、0.0.1 www.baidu.com
这里127.0.0.1 是你自己的电脑,当电脑尝试访问www.baidu.com 时,会转去连接你本机,导致无法访问真正的百度,很多广告屏蔽工具就利用了这个原理。
场景 2:加速访问某个网站(指定更快的 CDN 节点)
如果你发现某个域名(比如www.example.com)在你当前网络环境下被解析到了一个很慢的服务器,你可以手动指定一个你已知的更快的 IP(比如192.168.1.100)。
192、168.1.100 www.example.com
你正在本地写代码,域名test.com 实际上指向本地服务器。
127、0.0.1 test.com
这样你在浏览器输入test.com 就会直接访问你本机上的服务。
1、保存文件。
2、清空 DNS 缓存(推荐,但不是必需的):
Windows:打开命令提示符(CMD,管理员模式),输入ipconfig /flushdns
macOS:终端输入sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux:通常重启即可,或sudo systemctl restart systemd-resolved
3、测试:在浏览器或ping 命令测试一下,看看域名是否解析到了你设置的 IP。
格式必须对:IP 空格 域名,错误格式(如漏了空格、写了中文全角字符)会导致hosts 文件失效。
权限问题:无法保存时,99% 的原因是权限不够,请用管理员权限的编辑器打开。
文件编码:Windows 7 及更早版本建议使用 ANSI 编码保存,macOS/Linux 和 Windows 10/11 用 UTF-8 没问题。
不是修改 DNS 服务器:如果你是想让整个网络流量走一个新的 DNS 解析服务(Cloudflare 的 1.1.1.1 或 Google 的 8.8.8.8),请去网络适配器属性 -> IPv4 设置里修改 DNS 服务器地址,而不是改hosts 文件。
一句话总结:hosts 文件是你本机的一个“翻译器”小本本,它比任何 DNS 服务器都优先,你想让某个域名“变成”什么 IP,就手动写上去。
文章摘自:https://idc.huochengrm.cn/dns/27813.html
评论
英书语
回复通过修改hosts文件,可以手动指定域名对应的IP地址,优先级高于DNS服务器,常用于屏蔽网站、加速访问或本地开发调试。