gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1384
阅读:3926回复:1

localhost不能访问 127.0.0.1可以访问 的原因以及解决办法

楼主#
更多 发布于:2022-07-18 09:20
概念:
  • localhost:也叫local ,正确的解释是:本地服务器
  • 127.0.0.1:在windows等系统的正确解释是:本机地址(本机服务器)


工作原理:

  • localhot:是不经网卡传输的,它不受网络防火墙和网卡相关的的限制。
  • 127.0.0.1:是通过网卡传输的,它依赖网卡,并受到网络防火墙和网卡相关的限制。


文中开头提到的localhost不能访问但127.0.0.1可以访问的问题,究其原因,很可能是localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,可能涉及到网络用户的权限。


另外,我们现在也应该明白了一个道理,那就是一般设置程序时本地服务用localhost是最好的,localhost不会解析成IP,也不会占用网卡、网络资源。



出现的问题:一般情况下ping localhost 应该为127.0.0.1 ,但是有时会出来下面这个东西:

>ping localhost
reply from ::1: times<1msreply from ::1: times<1ms
reply from ::1: times<1ms地址根本不是“127.0.0.1”,而是“::1:”

>ping 127.0.0.1 正常
reply from 127.0.0.1 : bytes=32 times<1msreply from 127.0.0.1 : bytes=32 times<1ms
reply from 127.0.0.1 : bytes=32 times<1ms



解决方案一:
修改host文件用记事本打开C:/WINDOWS/system32/drivers/etc/hosts文件,看里面是否有包含:127.0.0.1 localhost

如果没有则将其添加进去,host文件部分内容:

# 127.0.0.1 localhost
 
# ::1 localhost
 
127.0.0.1localhost
 
localhost 127.0.0.1





修改完毕后,cmd内输入ipconfig /flushdns 重启Nginx

这时候ping localhost可以了,但还是无法打开localhost


解决方案二:

可能是有些程序修改了Winsock,命令行窗口使用 netsh winsock reset 命令修复 Winsock 后重启计算机即可。





gogogo
管理员
管理员
  • UID25
  • 粉丝0
  • 关注0
  • 发帖数1384
沙发#
发布于:2022-07-18 09:21
游客


返回顶部