Localhost 无法打开 怎么解决
❤ 了解 127.0.0.1和 localhost 的区别:
127.0.0.1 是一个 IP地址,
localhost 是一个域名,一般指向127.0.0.1,所以通常会把它们等同起来。
但在 ipv6 后,localhost 同时还指向ipv6 的地址 [::1],
ipv6的优先级高,所以我们ping的时候,会默认指向[::1]。
[::1]是0:0:0:0:0:0:0:1的简写,代表IPv6中的本地回环地址,相当于IPv4中的127.0.0.1。
❤ 检查 127.0.0.1 与 localhost 是否匹配
在命令行分别 ping一下 127.0.0.1和 localhost
ping 127.0.0.1
ping localhost
两个ping得到的匹配结果应该一致,都是127.0.0.1:
如果不匹配的话,ping localhost会返回 ::1: 而不是 127.0.0.1
❤ 那如果 127.0.0.1 与 localhost 不匹配的话,应该怎么解决呢?
主要有以下几个解决方案:
解决方案一:勾选/重装 IIS
测试:在浏览器中打开http://127.0.0.1
如果不能出现以下默认页面,就是IIS有问题,重新安装一下:
安装方法:
打开控制面板 - 程序与功能 - 启用或关闭windows功能 - 勾选2个IIS (必须要全部展开才能全部勾选)
解决方案二:查看本地 host
如果IIS没问题,或者重新安装以后还不行,查看你的host
目录:C:\Windows\System32\drivers\etc
打开hosts 看看有没有下面两行,没有添上。
这时候可能会提示没有权限,可以先把hosts拖到桌面,改完替换回去。
解决方案三:修改优先级
如果以上两个方案用了还是没有解决问题,可以修改 IPv6优先级
输入命令 netsh interface ipv6 show prefixpolicies,查询ipv6优先级
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies
-
IPv6地址(:: / 0)优先于IPv4地址(:: / 96,:: ffff:0:0/96)
-
以上,标签表示优先级,0表示优先级最高,依次类推。
-
不过,我们可以通过以下设置,使::/96、::ffff:0:0/96的优先级高于::/0和::1/128,在命令行中依次设置优先级:
C:\WINDOWS\system32>netsh int ipv6 set prefix ::/96 50 0
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix ::ffff:0:0/96 40 1
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix 2002::/16 35 2
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix 2001::/32 30 3
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix ::1/128 10 4
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix ::/0 5 5
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix fc00::/7 3 13
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix fec0::/10 1 11
ok
C:\WINDOWS\system32>netsh int ipv6 set prefix 3ffe::/16 1 12
ok
结束后输入命令netsh interface ipv6 show prefixpolicies再次查看优先级:
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies
此时结果显示如下::: / 96,:: ffff:0:0/96优先级已经高于::/0了。
然后,我们再ping一下localhost,就可以得到跟 ping 127.0.0.1 一样的结果了。
解决方案四:修改注册表
当我用到第三种方案时,我的问题已经解决了,所以也没有亲自试过第4个方案。如果你还没有解决,可以试下修改注册表。网上的大概修改步骤如下:
打开RegEdit,
导航到HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ tcpip6 \ Parameters,
创建DisabledComponents DWORD注册表值,将其值设置为20(十六进制),然后重启电脑。
最后的最后,祝成功解决~