这是一个常见的网络访问问题,涉及到 localhost
和 127.0.0.1
解析与绑定的区别。下面帮你分析原因和给出解决方案。
localhost
和 127.0.0.1
的区别127.0.0.1
是 IPv4 回环地址,直接指向本机网络接口。localhost
是一个主机名(域名),系统通过 hosts
文件解析到 IP 地址。localhost
默认映射到 127.0.0.1
(IPv4)和/或 ::1
(IPv6)。localhost
时会优先解析为 IPv6 地址 ::1
。127.0.0.1
,而没有监听 IPv6 ::1
,则访问 localhost
会失败。127.0.0.1
确保使用 IPv4,所以能访问成功。127.0.0.1
,而没有监听 ::1
。localhost
(解析到 ::1
)访问时无法连接。localhost
解析情况C:\Windows\System32\drivers\etc\hosts
文件/etc/hosts
文件一般会有如下两行:
127.0.0.1 localhost::1 localhostphp51 Bytes© 菜鸟-创作你的创作
如果缺少或者被注释掉,可能导致解析异常。
在命令行执行:
ping localhostping 127.0.0.1ping ::1php38 Bytes© 菜鸟-创作你的创作
观察 localhost
是解析到 IPv4 还是 IPv6 地址。
0.0.0.0
(监听所有IPv4地址)或 ::
(监听所有IPv6地址)app.listen(80, '0.0.0.0');php26 Bytes© 菜鸟-创作你的创作
::1 localhost
,只保留127.0.0.1 localhostphp19 Bytes© 菜鸟-创作你的创作
然后刷新浏览器或清缓存,再试访问。
现象 | 可能原因 | 解决方案 |
---|---|---|
localhost访问失败,127.0.0.1可访问 | localhost被解析成IPv6 ::1 | 让服务器监听IPv6地址,或修改hosts |
服务器只绑定IPv4地址 | 绑定服务器监听地址改为0.0.0.0 | 监听所有地址 |
hosts文件配置异常 | 修正hosts文件映射 | 添加或修复localhost到127.0.0.1映射 |
https://www.52runoob.com/archives/5736
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。