什么是 localhost,127.0.0.1 是如何工作的?

我们平时访问网址,本质是和互联网上某台服务器通信;而 127.0.0.1 是特殊地址 —— 发往它的请求不会离开本机,会直接原路返回,这种机制叫回环(loopback),对应的域名就是常用的 localhost

localhost 到底是什么

Localhost本质上是一个回环地址(loopback address),用于将网络请求重定向回同一台计算机。在大多数操作系统中,localhost的IP地址被定义为127.0.0.1。当你在浏览器中输入localhost或在代码中引用它时,你实际上是在告诉计算机将请求发送给自己,而不是外部网络。

在家庭网络中,你的电脑通常有一个局域网地址,比如 192.168.0.1;真正用于互联网通信的公网地址则由运营商动态分配。这两者都和 localhost 无关。localhost 描述的是另一种场景:当你在自己的机器上跑了一个服务器,想通过网络协议访问它时,用的就是这个地址。

.test.example 一样,.localhost 也是一个保留的顶级域名,专门用于本地测试。当你在浏览器中输入 http://localhost,请求不会经过路由器,不会进入互联网,而是直接在操作系统内部完成——指向的正是本机的 127.0.0.1

什么是 localhost,127.0.0.1 是如何工作的?

回环机制的原理

网络通信依赖 TCP/IP 协议。每台联网设备都有唯一的 IP 地址,数据包通过地址找到目标机器。公网 IP 地址由 ICANN(互联网名称与数字地址分配机构)统一管理,但有些地址段被永久保留,不对外分配,127.0.0.0127.255.255.255 就是其中之一。

这个地址段的特别之处在于:TCP/IP 协议栈一旦识别到目标地址的第一段是 127,就会立刻判断这是一个回环请求,不会将数据包交给网卡向外发送,而是在系统内部直接转回来。

IPv6 中对应的回环地址是 ::1

为了让这套机制运转,操作系统会创建一个虚拟网络接口。在 Linux 和 macOS 上,这个接口叫做 lolo0,可以用 ifconfig 命令查看;Windows 上则用 ipconfig。这个接口完全由软件模拟,与任何物理网卡无关。

localhost 有哪些实际用途

本地开发与测试

这是 localhost 最核心的使用场景。

开发一个 Web 应用时,很多功能只有在”服务器环境”下才能正常运行——直接双击打开一个 HTML 文件,和把它部署到服务器上通过浏览器访问,行为上可能完全不同。但你显然不能把一个还没完成的项目推到公网上测试。这时,在本机跑一个本地服务器,通过 localhost 访问,就是最合理的选择。

本地测试还有一个明显的速度优势。一次正常的网络请求往返耗时通常超过 100 毫秒,而 ping localhost 的响应时间一般不超过 1 毫秒。网络管理员也会用这个方式验证本机的 TCP/IP 协议栈是否工作正常。

打开终端或命令提示符,自己试试:

bash
ping localhost
ping 127.0.0.1

如果想在本机搭建完整的测试服务器环境,可以安装 XAMPP 这类集成软件包,一键获得 Apache、MySQL、PHP 等组件。

值得一提的是,随着云开发的普及,直接在本地跑服务器的场景已经越来越少。更多团队转向虚拟机或容器方案,在云端模拟运行环境。

通过 hosts 文件屏蔽网站

localhost 还有一个冷门但实用的用法:封锁指定域名

hosts 文件是 DNS 出现之前的域名解析方案,至今仍保留在几乎所有操作系统中:

  • Windows:\system32\drivers\etc\hosts
  • macOS / Linux:/etc/hosts

默认情况下,文件里只有两条记录:

127.0.0.1    localhost
::1          localhost

你可以手动添加条目,把想屏蔽的域名指向 127.0.0.10.0.0.0。当浏览器尝试访问该域名时,会先查询 hosts 文件,发现已有记录,便将请求指向本机——由于本机并没有对应的服务在运行,访问直接失败,网站也就被拦截了。

这个方法可以用来屏蔽广告域名、追踪脚本,甚至防止恶意软件回连。网上有人维护着持续更新的 hosts 屏蔽列表,直接引用即可,省去逐条添加的麻烦。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2285.html

Like (0)
Previous 2026年4月3日 下午2:10
Next 2026年4月7日 上午10:17

相关推荐