localhost与127.0.0.1的区别

在以前,我以为127.0.0.1与localhost是一个东西

我认为localhost是本地host中的一个固定指向,指向127.0.0.1

然而后来发现并不是这样。

 

之前在部署萌娘问答的时候,就出现了一个问题,如果用127.0.0.1的话,就连接不上本机的MySQL,经过尝试,改为localhost就可以了

经过查阅发现,二者其实是有区别的。

简单的来说,127.0.0.1依赖于网卡,也就是说,虽然这个IP在任何时候都指向本机,但是他也是TCP/IP中的一环,有时候本机的程序并不会把由127.0.0.1来源的访问认为是本机访问,目前遇到的两种情况:

  1. 关闭外网的MySQL,认为来自localhost的访问时本机,127.0.0.1
  2. ASP.NET开发时,我们知道此时测试的IIS服务是外网所不能访问的,localhost可以访问,127.0.0.1不行(并不是)

而localhost是一种本机的闭包,不依赖于网卡/硬件,不需要硬件支持的localhost更适用于大多数需要访问本机的情况。

 

以上仅个人理解,如有不对请指出,谢谢

2 条评论 在 “localhost与127.0.0.1的区别

发表评论

电子邮件地址不会被公开。 必填项已用*标注