您的 IPv4 地址:
操作系统:
运营商:

什么是 localhost?回环地址、127.0.0.1 与 ::1

localhost 通常指发出请求的那台机器本身。它最常见的地址是 IPv4 的 127.0.0.1 和 IPv6 的 ::1。发往这些地址的流量在本机的网络协议栈内部处理,不会经过家用路由器去往互联网。所以,localhost 测试只能回答一个很窄的问题:服务在本地能不能用?

回环地址段

IPv4 把整个 127.0.0.0/8 地址块都保留给了回环,不过示例中几乎总是使用 127.0.0.1。IPv6 则有一个专用地址 ::1/128。它们的作用在 RFC 1122 和 RFC 4291 中有说明。localhost 这个名称通常通过本机的系统配置解析为这些地址。某些应用可能优先尝试 IPv4 或 IPv6,所以一个能通、另一个不通,并不一定说明整个网络出了问题。

本地 Web 服务器示例

开发者启动了一个在 127.0.0.1:8000 上监听的应用,并在同一台电脑上打开 http://localhost:8000。这样测试很方便,又不会把应用暴露给其他设备。如果连接同一 Wi-Fi 的手机打开 localhost:8000,手机会尝试连接它自己,而不是开发者的电脑。要让手机访问这个应用,服务必须在合适的网络接口上监听,防火墙必须放行该连接,手机也必须使用这台电脑的局域网地址。没有适当防护的情况下,不要把开发服务器发布到更广的互联网上。

监听地址与外部访问

只绑定在 127.0.0.1 或 ::1 上的服务,无法从其他设备直接访问。在 IPv4 中绑定到 0.0.0.0,一般表示在所有适用的 IPv4 接口上监听,但这仍然不能保证外部可以访问。防火墙、容器、NAT 和运营商规则都可能阻断访问路径。IPv6 下的类似行为取决于应用和系统设置。面向互联网的端口检测无法确认一个只在回环地址上监听的服务在本地是否正常运行。请先在本地测试,再逐一测试每一道网络边界。

容器和服务器上的常见错误

在容器内或远程服务器上,localhost 指的是那个容器或那台服务器,而不是您的笔记本电脑。因此,指向 localhost 的数据库连接字符串,在本地开发时可能运行正常,部署后数据库位于另一台机器上时就会失败。排查时,先确定客户端运行在哪里,再检查目标主机名、端口以及服务所监听的地址。在评估暴露风险之前,不要把 localhost 直接换成公网 IP。内部通信通常应使用私有网络地址或专门为该服务设置的主机名。