学员问题-hosts不生效问题
继续看一个学员的问题,关于hosts的 本地hosts文件,需要用到它的场景还是蛮多的,比如开发环境调试qq登录,调试通过域名访问功能 在我的理解中,这个东西已经默认大家都会,就和配置环境变

学员问题-hosts不生效问题

发布时间:2025-04-27 (2025-04-27)
AI 文章总结
用 AI 快速提炼本文核心内容和阅读重点。

继续看一个学员的问题,关于hosts的

本地hosts文件,需要用到它的场景还是蛮多的,比如开发环境调试qq登录,调试通过域名访问功能

在我的理解中,这个东西已经默认大家都会,就和配置环境变量一样

但是万万没想到,还是有人不会,但是这个问题很经典,值得把它做成一个案例

什么是hosts

得从域名解析开始说起

我们都知道,ip地址就是互联网中的门牌号,但是我们上网不是靠ip去访问的

而是通过域名去访问,就好比你的记事本中,记录的是xx对应的电话号码是xxx-xxxx-xxxx

我们访问互联网也是,通过域名去访问

但是实际要访问到服务器,最终还是要通过ip去访问,域名只是一个别名

而域名到ip的过程就叫DNS,域名系统

这个过程可以记一下

  1. 浏览器的DNS缓存(如果是通过浏览器访问的话)
  2. 操作系统的Hosts文件
  3. 向本地dns服务器发起查询
  4. dns服务器根据域名级别开启递归查询

所以这个过程明白之后,有些现象就很好解释了

比如改了hosts之后,网页刷新还是没有效果,可以试下删除浏览器的dns缓存,或者关闭浏览器重新打开

修改hosts

演示一下传统的修改hosts的方法

windows系统的hosts文件在C:\Windows\System32\drivers\etc\hosts

linux系统的hosts文件在/etc/hosts

注意:都是没有后缀的

如果你需要频繁修改hosts文件,那么这样直接改它不是很方便,可以使用SwitchHosts这个软件去进行修改,很方便

https://github.com/oldj/SwitchHosts/releases

如何排查问题

再回顾一下这个问题,为什么hosts没有生效,是不是心里就有数了

然后还有一个问题需要深刻记住,那就是控制变量法

他发现hosts不生效,一是文件有后缀,二是配置的格式有问题(一行格式有问题,是会导致当前行失效?,还是全部失效?),三是用了nslookup去测试域名解析

重点强调一下第三个

为什么他会选择用nslookup去判断hosts有没有生效呢

因为是ai告诉他的

我不知道ai回复他的原文,但是我可以猜测,他应该是这样问ai的

如何检测hosts是否生效?

然后ai告诉他可以通过ping和nslookup

然后他ping了一下,发现不行,因为那个时候,他的文件有后缀,修改肯定没有生效

他又试了nslookup,发现还是不行,然后后面就一直在用nslookup了

这也是很多人的通病,太过相信ai了,nslookup确实是查询dns服务器的工具,但是它有一个关键的问题,它默认不会检测本地hosts文件

当然,我对nslookup不是很熟悉,也不是很清楚这个ai的回复是不是乱说的

但是通过我的实践,发现nslookup是不会检测本地hosts文件的