如何修改hosts文件,修改后不生效怎么办?

如何修改hosts文件,修改后不生效怎么办?,第1张

1、手指同时按住 windows 键和 X 键。

2、在电脑桌面右下角d出来的菜单里选择Windows Powershell。

3、在打开的powershell 界面输入notepad,按回车,就会出现记事本的界面。

4、在记事本界面点击文件,然后点新建,在d出来的窗口里找到路径c:\windows\system32\drivers\etc\,找到后可以看到目录里面是空白。点击右下角的选择文件,点击所有文件。

5、此时hosts文件就会出现在你眼前,点击hosts文件。

6、d出hosts文件的编辑页面,可以在里面添加你需要的IP地址和主机名了。

7、添加完毕以后,可以直接按ctrl+s保存,也可以直接点击记事本左上角的文件,然后点保存。Hosts文件就修改成功了。

Hosts文件具体指什么呢?

Hosts文件是用于本地dns服务的,采用ip

域名

的格式写在一个文本文件当中,

Windows系统上一般存放在系统盘的system32目录下,

比如

C:\windows\system32\drivers\etc\,

本地主机一般都被定义为

127.0.0.1

locahost

。根据微软的相关文档,

hosts文件必须是ascii编码方式,

如果你存为unicode格式将不会被正确读取。

修改hosts文件后设置无效的原因及解决方法:

修改hosts将域名指向新的ip总是无法生效

其实是由“DNS

Client”

服务导致的,

它是缓存dns用的,

所以说修改了hosts的文件是不能马上生效的,

需要一段时间的延时,

通常可以用ipconfig

/flushdns来刷新dns缓存,

但这个方法对于我的问题似乎没有什么效果。用户可以参考以下方法来处理:

解决方法一:打开控制面板-

管理工具

服务,

在其中找到“DNS

Client” 将其停用并改为手动模式即可。

解决方法二:

1、用户可以在桌面创建一个host文件(无扩展名)并编辑好里面的内容

2、然后把C:\Windows\System32\Drivers\ect\下的host文件删除

3、删除后再把自己新创建的host文件放在ect目录中。

Update:

如果浏览器使用了代理工具,修改 Hosts 也不会生效。这里是因为,浏览器会优先考虑代理工具(如添加 pac 文件、SwitchySharp等)的代理,建议调试的时候先关闭这些代理。

使用 pac 文件代理有的时候部分文件的代理不生效,应该是 pac 对应的代理服务器上,做了部分处理。

部分浏览器也有 DNS 缓存,如 chrome(chrome://dns),这是为什么重启浏览器也不生效的原因,一般设定时间为 60s (如 Firefox)。

浏览器有DNS缓存,系统也会存在 DNS 缓存,有的时候即便在 chrome://dns 清空了浏览器 DNS 缓存,依然不生效,是因为系统 DNS 缓存还未刷新,刷新方式可以看这篇文章。

相信很多同学都在使用 SwitchHosts/iHosts/Gas Mask 等 Hosts 管理工具,当然也有人直接修改 /etc/hosts 或者system32/drivers/etc/hosts 文件,而经常遇到的疑问是:咿,刚才不是修改并且保存了么,为何 Chrome 浏览器还不生效呢?

有人说重启下浏览器就好了,

有人说清空下缓存 DNS(chrome://net-internals/#DNS)就好了,

有人说隐私模式下打开就好了,

有人说等一分钟吧...

结果就是,进入隐私模式的都好了,重启、清空缓存DNS和等一分钟的同学还在继续纠结中。。。

上面提到的三个工具,SwitchHosts/iHosts/Gas Mask,其实也只有 iHosts 生效了(Mac下)。

开发过程中我们会无数次的切换 Hosts,如果不知道原理,我们在测试的时候还是很心惊胆战的


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11787523.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存