localhost 访问不到,127.0.0.1 可以访问?


本篇文章:

        最近遇到了一个问题,在用 localhost 访问的地址的时候出现访问不到的问题,但是把 localhost 换成 127.0.0.1 却可以访问到,很不解。在网上面找到了解决的办法,记录下来方法。


① 两者概念
  • localhost :本地服务器
  • 127.0.0.1 :本机地址(本机服务器)
② 两者区别
  • localhot :是不经网卡传输的,它不受网络防火墙和网卡相关的的限制。
  • 127.0.0.1 :是通过网卡传输的,它依赖网卡,并受到网络防火墙和网卡相关的限制。
③ 原因分析
  • localhost :系统带着本机当前用户的权限去访问
  • 127.0.0.1 :等于本机是通过网络去访问本机,可能涉及到网络用户的权限。

下面是我的 ping 的数据,localhost地址是 ::1(ipv6协议的)

分别 ping localhostping 127.0.0.1

正确的打开方式:

在这里插入图片描述

错误的打开方式:

在这里插入图片描述

④ 解决方案:
可能一:

在浏览器里面打开 http://127.0.1

正确打开格式:

在这里插入图片描述
如果没有出现该页面的话,就是 IIS 有问题,就需要重新安装一下
在这里插入图片描述
勾选的话,需要展开,先把里面的勾选上,再勾选总体

可能二:

如果 IIS 没有问题,或者重装之后还是不行,查看你的 host 文件

目录:C:\Windows\System32\drivers\etc

在这里插入图片描述
看一下,下面的两行有没有,没有的话,需要添加上去

这个时候会显示没有权限,下面提示如何修改 host 文件:

第一步:鼠标右击桌面左下角开始菜单,选择“命令提示符(管理员)”

在这里插入图片描述
第二步:输入 notepad
在这里插入图片描述
第三步: 点击文件,选择打开
在这里插入图片描述
第四步:进入 C:\Windows\System32\drivers\etc ,打开 hosts 文件
在这里插入图片描述
在这里插入图片描述
进入之后,按照上面的修改方法,修改 hosts 文件即可!!!

可能三:修改优先级

大部分都是修改 host 的,但是对我来说真的没用,我又找到了另外一种方法,修改 ipv6 优先级的(在这个方法下,我终于实现了正确的打开方式,亲测有效)

https://blog.csdn.net/ambertian/article/details/70238020

可能四:修改注册表信息

第三个帮我解决了问题,没用试过这种解决办法,如果第三个还是不可以的话,可以试试这个办法,可能三里面有如何修改注册表的方法,可以一试。

⑤ 总结

127.0.0.1 :是一个IP地址

localhost 是一个域名,一般指向 127.0.0.1 ,所以通常会把它们等同起来

但是在 ipv6 后,它同时还指向 ipv6 的地址 [::1] , ipv6 的优先级高,所以完美 ping 的时候,会默认指向 [::1]

[::1]0:0:0:0:0:0:0:1 的简写,代表 ipv6 中的本地回环地址,相当于 ipv4127.0.0.1

参考链接:

https://www.cnblogs.com/rulasann/p/9442420.html

作者:文小白


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐