使用 Linux 或任何其他操作系统时,我们可能会经常遇到 localhost 和 127.0.0.1 这两个术语。它们密切相关,但了解两者之间的区别有助于澄清许多网络概念。

1] 什么是 Localhost?

简单来说,localhost 是一个主机名,指的是正在使用的本地计算机,用于通过 TCP/IP(传输控制协议/Internet 协议)等网络协议访问自己的计算机。当我们在浏览器或终端中输入”localhost”时,就是在告诉系统,”嘿,我想访问我自己的机器。”

  • 主机名:分配给连接到网络的设备的名称
  • Localhost:指的是正在使用的机器

例如,如果在机器上运行有 Web 服务器,则可以通过在浏览器中输入”http://localhost”来访问它的内容。浏览器将与在同一台计算机上运行的 Web 服务器进行通信。

2] 什么是127.0.0.1?

从根本上讲,127.0.0.1 是环回 IP 地址,这是一个特殊的 IP 地址,它始终指向自己的计算机,就像 localhost 一样。事实上,localhost 本质上是一个指向 127.0.0.1 的名称。

  • 127.0.0.1:为环回网络接口保留特定的 IP 地址
  • 环回:指将网络流量从用户的系统发送到自身的过程

当在浏览器或终端中输入”127.0.0.1″时,它在功能上等同于输入”localhost”。两者都将指向自己的计算机,并且数据永远不会离开计算机,这意味着这不会涉及任何外部网络通信,都只是系统与自己对话。

3] Localhost 和 127.0.0.1 的主要区别

虽然 localhost 和 127.0.0.1 最终指的是同一件事(用户自己的机器),但它们之间还是存在一些差异:

格式:

  • Localhost 是一个主机名
  • 127.0.0.1 是一个 IP 地址

用途:

  • localhost 可以在命令、配置文件或 URL 中用作符号名称
  • 127.0.0.1 用于基于 IP 的网络环境中,通常在需要直接指定 IP 地址时输入

网络解析:

  • 当使用 localhost 时,系统需要将其解析为 IP 地址,并通过查找配置文件中的条目(例如,Linux 系统上的 /etc/hosts 文件)来实现此目的
  • 127.0.0.1 已经是一个 IP 地址,因此使用它时无需解析

4] Localhost 和 127.0.0.1 如何协同工作?

尽管 localhost 是一个名称,而 127.0.0.1 是一个 IP 地址,但它们通常通过系统的 hosts 文件进行关联。在 Linux 机器上,此文件位于 /etc/hosts。

在此文件中,可以找到如下条目:

127.0.0.1       localhost

这意味着每当需要引用 localhost 时,系统都会自动使用 127.0.0.1 作为目标。可以将 localhost 视为 IP 地址 127.0.0.1 的人性化版本。

5] 为什么要同时使用它们?

同时使用 localhost 和 127.0.0.1 的原因主要是为了易于使用和灵活性:

  • localhost:记住并输入”localhost”比输入数字地址 127.0.0.1 更容易
  • 127.0.0.1:使用实际 IP 地址可以更明确地控制网络设置,尤其是在配置服务器或编写脚本时

我们甚至可以在 /etc/hosts 文件中为环回地址分配多个名称(例如”loopback”或”myserver”),这在某些情况下会很有帮助。

6] 实际用例

假设我们正在开发 Web 应用程序,则可能需要在将其部署到实时服务器之前在本地进行测试。于是可以使用 localhost 或 127.0.0.1 访问本地 Web 服务器。

不有许多网络工具和命令(如 ping 或 curl)都可用于使用 localhost 或 127.0.0.1 来测试机器的网络接口:

# ping 127.0.0.1
或
#curl http://localhost

这些命令可以验证机器上的环回接口是否正常工作。

总之,localhost 和 127.0.0.1 经常互换使用,因为它们都指代自己的计算机。但是,localhost 是一个主机名(人性化的名称),而 127.0.0.1 是一个指向同一位置的 IP 地址。

无论使用 localhost 还是 127.0.0.1,底层网络请求都保持不变,并且计算机会与自身进行通信,这可以成为本地测试和配置服务的有用工具。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注