127.0.0.1 和 localhost 有什么区别?

在日常开发中,我们经常把 127.0.0.1 和 localhost 当成同义词:都表示"访问本机"。大多数时候确实没问题,但一旦遇到访问失败、连接被拒绝、服务明明启动了却打不开等情况,它俩的差异就会立刻变得关键。

这篇文章用开发者视角,了解两者的概念、差异、常见坑和解决方案

一、先给结论:它们不是一回事

  • 127.0.0.1:一个IP 地址(IPv4 回环地址)
  • localhost:一个主机名(hostname),需要先解析成 IP 才能使用

它俩"经常等价",是因为 localhost 通常会被解析到回环地址(如 127.0.0.1 或 ::1)。

二、127.0.0.1:明确的 IPv4 回环地址

1)它属于回环网段

127.0.0.1 属于 127.0.0.0/8 这一整段回环网段(loopback network)。这一网段专门用于本机到本机的通信。

特点:

  • 请求不会发到物理网卡,不会走外网
  • 常用于本地开发、服务自测、进程间通信等

2)IPv6 对应的是 ::1

如果在 IPv6 环境下访问本机回环地址,对应的是:

  • ::1(IPv6 loopback)

三、localhost:一个名字,最终连到谁取决于"解析结果"

localhost 是一个主机名,使用前必须先被解析成 IP(类似域名解析)。

通常系统会在 hosts 文件里写死它的映射,例如:

  • 127.0.0.1 localhost
  • ::1 localhost(很多系统也会配置)
    所以关键点是:
    localhost 最终是 IPv4 还是 IPv6,完全取决于你的系统解析策略/hosts 配置。

四、最常见的坑:localhost 解析到 IPv6(::1)

很多"诡异"问题的根源其实是这一条:

  • localhost → 可能解析成 ::1(IPv6)
  • 127.0.0.1 → 永远是 IPv4

典型现象

  • 服务启动了,访问 127.0.0.1:8080 正常
  • 访问 localhost:8080 却失败(连接被拒绝/超时)

根本原因

服务可能只监听 IPv4(比如只绑定了 127.0.0.1),但 localhost 被系统优先解析到了 ::1(IPv6),于是访问走了 IPv6,当然连不上。

反过来也可能:

  • 只监听 IPv6(::1 或 ::)
  • 用 127.0.0.1 访问失败

六、遇到"localhost 不通,127.0.0.1 通

1、先确认 localhost 解析到了什么

Windows(PowerShell)

powershell 复制代码
Windows(PowerShell)

看输出是:

  • ::1 → 说明走 IPv6
  • 127.0.0.1 → 说明走 IPv4

再看一下 hosts 实际映射:

powershell 复制代码
type C:\Windows\System32\drivers\etc\hosts

最快修复:改 hosts,让 localhost 指向 127.0.0.1(立即见效)

1.以管理员权限打开记事本

开始菜单搜索 "记事本" → 右键 以管理员身份运行

2.打开 hosts 文件

C:\Windows\System32\drivers\etc\hosts

(文件类型记得选 "所有文件 .")

3.确保有这行(没有就加上):

bash 复制代码
127.0.0.1    localhost

4.如果有这行,先注释掉(很多情况下就是它导致 localhost 走 IPv6):

bash 复制代码
# ::1    localhost

5.保存后刷新 DNS(管理员 PowerShell):

powershell 复制代码
ping localhost

6.再测

powershell 复制代码
ping localhost

应该变成解析到 127.0.0.1,这时 localhost:端口 一般就恢复了。

相关推荐
saber_andlibert1 小时前
TCMalloc底层实现
java·前端·网络
逍遥德1 小时前
如何学编程之01.理论篇.如何通过阅读代码来提高自己的编程能力?
前端·后端·程序人生·重构·软件构建·代码规范
冻感糕人~1 小时前
【珍藏必备】ReAct框架实战指南:从零开始构建AI智能体,让大模型学会思考与行动
java·前端·人工智能·react.js·大模型·就业·大模型学习
程序员agions1 小时前
2026年,“配置工程师“终于死绝了
前端·程序人生
alice--小文子1 小时前
cursor-mcp工具使用
java·服务器·前端
晚霞的不甘1 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
梦帮科技2 小时前
Node.js配置生成器CLI工具开发实战
前端·人工智能·windows·前端框架·node.js·json
VT.馒头3 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
css趣多多3 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js