记SwitchHosts导致解析不了localhost的坑

简介: 记SwitchHosts导致解析不了localhost的坑

一、背景

switchHosts是一个非常不错的支持切换host的软件,可以在 开发环境、测试环境、线上环境等之间自由切换。

https://oldj.github.io/SwitchHosts/

image.png

最近遇到一个问题,在关闭SwitchHosts时,启动内嵌的MySQL服务进行单元测试时,报错。

核心意识是提示无法解析 localhost。

二、问题分析

但是此时SwitchHosts并没有开启啊!大家都潜意识地认为没有开启SwitchHosts此时hosts文件中应该是类似上图所示的 默认的hosts映射。

非常费解...

最终抱着怀疑人生的态度,打开本地host文件,发现本地hosts文件里的确只有  #SwitchHosts   这一行....

于是按照上面的截图所示,将原始的 hosts 配置重新写回去并保存,一切正常。

因此怀疑只要安装了 SwitchHosts,会默认将本地hosts文件清空,配置生效时写入或者通过其他机制让域名到IP的映射生效。

其实此时开启SwitchHosts,切换到 带有localhost的映射也可以正确运行。

另外安装最新版(3.5.0)发现SwitchHosts 退出后,本地的hosts文件是 SwitchHosts中最后生效的设置。

三、反思

要相信错误提示,要相信错误提示,要相信错误提示!

当自己的惯性思维和错误提示冲突时,优先按照错误提示的暗示来排查问题!!

用软件时如果能了解原理最好去了解,如果无法了解原理要多观察软件的设置对本地文件的影响。

相关文章
|
2月前
|
网络协议 安全 测试技术
localhost和127.0.0.1的区别是什么
与localhost不同的是,127.0.0.1是一个明确的IP地址,不受本地hosts文件或DNS设置的影响
71 2
|
4月前
|
安全 网络安全 数据库
localhost知识
localhost知识
64 0
|
9月前
|
Java 关系型数据库 MySQL
jdbc:mysql://localhost:3306/test是什么?jdbc代表什么?
jdbc:mysql://localhost:3306/test是什么?jdbc代表什么?
174 0
|
API
Proxy error: Could not proxy request xxx from localhost:8080 to http://localhost:3000(ECONNREFUSED)
Proxy error: Could not proxy request xxx from localhost:8080 to http://localhost:3000(ECONNREFUSED)
1546 0
Proxy error: Could not proxy request xxx from localhost:8080 to http://localhost:3000(ECONNREFUSED)
|
应用服务中间件
关于 localhost 和网络的理解
关于 localhost 和网络的理解
关于 localhost 和网络的理解
|
网络协议 Ubuntu 应用服务中间件
localhost,127.0.0.1 ,0.0.0.0区别
localhost,127.0.0.1 ,0.0.0.0区别
362 0
|
Shell Docker 容器
仅在 localhost 中部署并使用 RSSHub
由于部分网站严格的反爬机制、再加上大量使用带来的计算压力,RSSHub 鼓励用户自建使用。但如果你也有自建 RSS 阅读器习惯、且部署 RSSHub 也只是为了自用而不打算与他人共享,完全可以本地部署 RSSHub 后不将其暴露至公网、直接在自建 RSS 阅读器上通过特殊字段访问到本地的 RSSHub。
328 0
仅在 localhost 中部署并使用 RSSHub
|
Web App开发 应用服务中间件 nginx
|
网络协议
localhost与ip的区别
localhost与ip的区别
450 0
localhost与ip的区别
|
网络协议 Linux Windows
localhost和127.0.0.1的区别
localhost和127.0.0.1的区别
229 0

热门文章

最新文章