DNS 和 hosts 文件的区别
1、DNS (域名系统):像一个全球分布的电话簿,当您的电脑访问www.google.com
时,它会先去问DNS服务器:“www.google.com
的IP地址是多少?” DNS服务器返回对应的IP地址,电脑才能连接,这个“电话簿”是放在远程服务器上的。
2、hosts 文件:您电脑本地的一个“小电话簿”,在向远程DNS服务器查询之前,电脑会首先检查这个文件,如果在这个文件里找到了域名和IP地址的对应关系,它就会直接使用这个IP地址,而不再去问DNS服务器。
您的操作不是“用DNS改hosts文件”,而是“通过修改hosts文件,来覆盖/跳过DNS查询结果”。
屏蔽特定网站将恶意或讨厌的网站域名指向一个无效的IP(如127.0.0.1
)或本地IP,从而达到屏蔽的效果。
加速访问直接将域名和其服务器的IP地址绑定,省去DNS查询时间(现在效果不明显,DNS都有缓存)。
本地开发测试将您开发的域名(如www.mydevsite.com
)指向本地服务器IP(如127.0.0.1
或192.168.1.100
),方便开发和调试。
访问被封锁或DNS污染的网站通过手动指定正确的IP地址来绕过问题。
重要提示:
修改系统文件需要管理员权限。
修改前最好备份一下原来的hosts文件。
文件没有后缀名,不要自行添加.txt
等后缀。
方法一:使用记事本(推荐)
1、 在Windows搜索框输入“记事本”。
2、 在右侧的“记事本”应用上,右键单击,选择“以管理员身份运行”。
3、 在记事本中,点击菜单栏的“文件” ->“打开”。
4、 导航到 hosts 文件所在目录:C:\Windows\System32\drivers\etc\
5、 因为默认看不到任何文件,你需要将右下角的文件类型筛选从“文本文档 (.txt)”改为 **“所有文件 (*.*)”** 。
6、 这时就能看到hosts
文件了,选择它并点击“打开”。
7、 在文件末尾,按照格式添加你的规则。
# 这是一个注释,以 # 开头 127.0.0.1 localhost 127.0.0.1 example.com # 这会将 example.com 屏蔽掉 192.168.1.100 myrouter.local # 这将 myrouter.local 指向内网设备
格式:[IP地址] [空格或Tab] [域名]
8、 添加完成后,点击“文件” ->“保存”。
9、刷新DNS缓存:保存后,需要让系统识别新的映射关系,按Win + R
键,输入cmd
打开命令提示符,输入以下命令并回车:
ipconfig /flushdns
方法二:使用第三方工具(如 Hosts File Editor)
在微软应用商店搜索 “Hosts File Editor”,安装后可以图形化界面管理,更简单安全,推荐新手使用。
1、 打开“终端”应用程序(可在“应用程序”->“实用工具”中找到)。
2、 输入以下命令,用nano
编辑器以管理员权限打开 hosts 文件:
sudo nano /etc/hosts
3、 输入你的电脑登录密码(输入时密码不显示,输完直接回车)。
4、 编辑器会打开文件,使用键盘方向键移动到文件末尾。
5、 按格式添加你的规则,
127.0.0.1 ads.example.com
6、 编辑完成后,按Control + O
键(字母O)来保存,然后按Enter
键确认文件名。
7、 再按Control + X
键退出编辑器。
8、刷新DNS缓存:在终端中输入以下命令(不同系统版本命令可能不同):
# 对于 macOS Monterey (12.0) 及更新版本: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder # 对于更早的版本,可以尝试: sudo killall -HUP mDNSResponder
步骤与 macOS 非常相似。
1、 打开终端。
2、 输入命令(可能需要使用vim
或gedit
):
sudo nano /etc/hosts # 或者 sudo gedit /etc/hosts
3、 输入密码后编辑文件,添加规则。
4、 保存并退出。
5、刷新DNS缓存(如果你的系统有DNS缓存服务,如systemd-resolved
):
sudo systemctl restart systemd-resolved.service # 或者 sudo systemd-resolve --flush-caches
修改并刷新DNS缓存后,打开命令行(Windows是cmd
,macOS/Linux是终端
),使用ping
命令测试你修改的域名。
你将example.com
指向了127.0.0.1
,
ping example.com
如果结果显示来自127.0.0.1
的回复,而不是它真实的IP地址,就说明修改成功了!
谨慎操作错误的IP地址可能导致网站无法访问。
HTTPS问题如果你将某个HTTPS网站(如https://example.com
)指向了一个不匹配的IP,浏览器会报告SSL证书错误,因为证书上的域名与你访问的IP不匹配。
恢复如果修改出错,只需再次用管理员权限打开hosts文件,删除你添加的行并保存即可。
希望这个详细的解释能帮到你!
文章摘自:https://idc.huochengrm.cn/dns/14071.html
评论