当前位置: 首页 > 教程资源 > Wordpress 教程 > 正文
什么是 localhost?127.0.0.1 又是如何工作的?

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

作者:大眼仔~旭 日期:3周前 (03-21) 评论:0 条

摘要:通常,当我们访问一个 IP 地址时,目的是连接互联网上的另一台计算机。然而,当你使用 127.0.0.1 这个 IP 地址时,你实际上是在与 localhost(本地主机)通信,本质上,就是你的电脑在和自己对话。 但你可能会问:为什么要进行这种“自言自语”式的虚拟对话?我们需要 localhost 做什么?这种环回(l…

通常,当我们访问一个 IP 地址时,目的是连接互联网上的另一台计算机。然而,当你使用 127.0.0.1 这个 IP 地址时,你实际上是在与 localhost(本地主机)通信,本质上,就是你的电脑在和自己对话。

但你可能会问:为什么要进行这种“自言自语”式的虚拟对话?我们需要 localhost 做什么?这种环回(loopback)机制又是如何运作的?

localhost

究竟什么是 localhost?

描述 localhost 最简单的方式是:它指代的就是你当前的这台电脑。当你访问它时,你的设备本质上是在与自己通信。

不过,这只是一个简化的解释。localhost 并不直接连接到你的物理 PC 硬件上。在大多数家庭网络中,你的电脑拥有一个局域网 IP 地址(例如 192.168.0.1);而在互联网上使用的地址则不同,通常由你的互联网服务提供商(ISP)动态分配。

“localhost” 这个词通常在你的电脑上运行了一个服务器时才会发挥作用。

反过来说,“localhost”这个术语仅在网络语境下使用。它不仅指代那个虚拟服务器本身,也指代其域名。就像 .test、.example 或 .invalid 一样,.localhost 是一个保留用于文档说明和测试目的的顶级域名。

当你尝试访问这个域名时,会触发一个环回过程。因此,如果你在浏览器中输入 http://localhost,该请求不会通过路由器发送到互联网,而是保留在你自己的系统内部。localhost 拥有的 IP 地址是 127.0.0.1,它指向运行在你自己电脑上的服务器。

环回机制是如何工作的(127.0.0.1)

IP 地址用于在网络内实现参与者之间的通信。网络中的每个参与者都有自己的地址。通过 TCP/IP 发送的数据包正是凭借这一系统才能到达正确的目的地。传输控制协议 (TCP) 和 网际协议 (IP) 这对协议组合构成了互联网的基石之一。然而,TCP/IP 也用于互联网之外的局域网中。互联网协议负责确保网络中的参与者可以通过 IP 地址和子网掩码进行寻址。

注意
公共 IP 地址(即那些可以通过互联网访问的地址)由 互联网名称与数字地址分配机构 (ICANN) 分配和管理。该组织还监管域名系统 (DNS),负责域名的分配。

然而,某些 IP 地址段是为特定目的保留的,例如从 127.0.0.0 到 127.255.255.255 的地址块。

直到 20 世纪 90 年代,互联网上的 IP 地址被分为不同的类别。A 类地址从 0.0.0.0(这也是一个保留地址)开始,一直延伸到 127.255.255.255。这使得 127 成为 A 类范围内的最后一个地址块。

在这个地址范围内,你可以建立一个本地网络(localnet)。这个范围的特殊之处不仅在于它被 ICANN 保留,还在于其中的 IP 地址不像大多数其他地址那样被唯一分配。其工作原理如下:

通常情况下,当你在浏览器中输入一个 IP 地址或域名时,路由器会将请求转发到互联网并送达相应的服务器。但对于 127.0.0.1,情况则完全不同 —— 发往该地址的请求永远不会离开你的电脑。TCP/IP 协议通过第一个数字段(127)就能识别出该地址是指向你自己的系统。因此,环回过程随即启动。

事实
在 IPv6 下,地址 ::1 被保留用于环回。

为了确保这种对本机的回溯引用能够正常工作,系统会创建一个环回设备。这是一个虚拟接口,完全通过操作系统实现。在 Unix 系统上,该接口称为 “lo” 或 “lo0”。你可以使用 ifconfig 命令在此查看它们。Windows 中类似的命令是 ipconfig。

事实
如果将技术与 localhost 分开考虑,环回也可以类似地实现:在通信技术中,通过电路可以确定信号传输路径和接收是否正确。

localhost 有什么用途?

开发人员在测试程序和 Web 应用程序时会使用 localhost。同样,网络管理员可以利用环回功能来测试网络连接。localhost 的另一个实际用途是在 hosts 文件中,利用环回来屏蔽有害网站。

注意
在现代基于云的开发环境中,使用本地服务器的情况已变得罕见。取而代之的是在云中运行的虚拟机或容器。在这种情况下,传统上使用 localhost (127.0.0.1) 来模拟网络连接的做法可能显得不那么重要了。

1. 用于测试目的

localhost 主要用于处理 Web 服务器或开发需要互联网式通信的应用程序时。在开发过程中,关键是要测试应用程序在像在线一样被访问时是否能正常工作。有些功能只有在相应文件位于模拟的或“伪”互联网上时才能正常运行。

例如,直接在电脑上打开一个 HTML 文件与将其上传到服务器并在浏览器中查看,这两者之间存在差异。当然,将未完成的产品公开发布并不是个好主意,而这正是环回机制大显身手的地方。开发人员利用它在模拟网络连接的同时,将所有数据流量保持在本地。换句话说,连接完全保留在他们自己的系统内部。

使用它进行测试的另一个优势是速度。通过互联网发送请求可能需要超过 100 毫秒。然而,如果你 ping localhost,传输时间最多只需 1 毫秒。

这项技术还可以揭示互联网协议是否实施正确。要亲自测试,只需打开命令提示符(Windows)或终端(Unix/Mac),并使用 ping 命令。你可以将其发送到域名 “localhost”,也可以直接发送到 IP 地址:

  • ping localhost
  • ping 127.0.0.1

如果你想在自己的 PC 上搭建测试服务器并通过 localhost 访问它,你需要安装相应的软件。通常,你可以在自己的电脑上运行任何标准的 Web 服务器。不过,也有一些专门设计用于作为 localhost 使用的应用程序。其中一个例子就是软件栈 XAMPP。

2. 屏蔽网站

localhost 在 hosts 文件中也扮演着重要角色。这个文件可以被视为域名系统 (DNS) 的前身:它允许将 IP 地址链接到相应的域名。

当你在浏览器中输入网站地址时,域名必须被翻译成 IP 地址。过去,这是通过 hosts 文件完成的。然而如今,这项任务通常由全球 DNS 处理。尽管如此,大多数操作系统中仍然存在 hosts 文件。
在 Windows 上,你可以在 \system32\drivers\etc\hosts 找到它。

在 macOS 或其他基于 Unix 的系统上,路径为 /etc/hosts。

如果你自己没有修改过该文件,你可能只会看到以下两行条目:

  • 127.0.0.1 localhost
  • ::1 localhost

这确保了 localhost 的名称解析无需经过互联网。

然而,你也可以利用该文件来屏蔽特定网站。操作方法是将你想屏蔽的网站添加到列表中,并将该域名分配 IP 地址 127.0.0.1。

如果你(或者例如某个恶意脚本)尝试访问被屏蔽的域名,浏览器会首先检查 hosts 文件,找到该条目,并在此处停止连接。

另一种选择是使用 IP 地址 0.0.0.0。

随后,浏览器会尝试访问 127.0.0.1 服务器上对应的文档(即该网站)。在大多数情况下,它找不到该文件,因为请求的文件在那里并不存在。但是,如果你搭建了自己的测试服务器,浏览器可能会找到一个文件 —— 那将是你的本地文件。如果没有运行测试服务器,则会显示错误消息,而不是请求的网站。

这项技术也可用于在整个系统范围内屏蔽广告。为了避免手动添加每个条目,你可以在网上找到现成的且定期更新的 hosts 文件。

注意
hosts 文件会对你的在线安全产生重大影响。虽然它是屏蔽恶意网站的有用工具,但网络罪犯也可能利用它,通过添加有害条目来进行攻击。因此,你应该谨慎行事,不要导入来自未经验证来源的条目,并确保没有恶意软件在不知情的情况下修改该文件。

声明:大眼仔旭 | 本文采用署名-非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
文章名称:《什么是 localhost?127.0.0.1 又是如何工作的?
文章固定链接:https://www.dayanzai.me/what-exactly-is-the-localhost.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
转载声明
全部评论: (0条)
^_^ 暂无评论!

发表评论

返回顶部