当您(或您的计算机)呼叫一个 IP 地址时,您通常是在尝试联系互联网上的另一台计算机。 但是,如果您调用 IP 地址 127.0.0.1,那么您正在与 localhost 进行通信– 原则上是与您自己的计算机进行通信。 但是与自己开始虚拟对话有什么意义呢? 您需要 localhost 做什么以及它是如何工作的?
在解释什么是 localhost 时要说明的第一点是,它始终是您自己的计算机:当您调用 localhost 时,您的计算机正在与自己对话。然而,这是一种浓缩的方法。本地主机并不总是与您的计算机直接识别。在大多数情况下,它有一个单独的 IP 地址,例如 192.168.0.1。在您的个人网络中,这与您在 Internet 上使用的网络不同,通常由 Internet 服务提供商动态分配。当您谈论本地主机时,您指的是在您自己的计算机上使用服务器时。
相反,这意味着该术语仅在网络上下文中使用。 “本地主机”不仅是虚拟服务器的名称,也是它的域名。就像 .test、.example 或 .invalid 一样,.localhost 是为文档和测试目的而保留的顶级域。当您尝试访问域时,会触发环回。如果您在浏览器中访问“http://localhost”,请求将不会通过路由器转发到 Internet,而是保留在您自己的系统中。 localhost 的 IP 地址为 127.0.0.1,它指的是您自己的服务器。
IP 地址在网络内用于相互通信。网络中的每个参与者都有自己的地址。使用该系统时,通过 TCP/IP 发送的数据包能够到达正确的目的地。协议对传输控制协议 (TCP) 和互联网协议 (IP) 是互联网的一些基石。但是,TCP/IP 也用于 Internet 之外的本地网络中。在传输过程中,互联网协议负责允许 IP 地址和子网掩码寻址网络中的用户。
公共 IP 地址(可以通过互联网访问的地址)的分配由一个国际组织监管:互联网名称与数字地址分配机构 (ICANN)。 ICANN 还负责域名或域名系统 (DNS) 的分配。但是,某些地址范围是为特殊目的而保留的,例如从 127.0.0.0 到 127.255.255.255 的范围。没有关于为什么选择该范围的可靠信息,但您可以自由推测。
直到 1990 年代,互联网上的 IP 地址被划分为不同的类别。第一类(A 类)以 0.0.0.0 开始(这个地址也是保留的),以 127.255.255.255 结束。 127 是 A 类网络中的最后一个块。这个重要的职位可能是它被选中的原因。
可以在此地址范围内设置 Localnet。这个范围的特别之处不仅在于它是由 ICANN 保留的,而且它的 IP 地址也不是唯一分配的,这通常是这种情况。但它是如何工作的?
例如,如果您在浏览器中输入 IP 地址(或相应的域名),路由器会将您的请求转发到互联网和正确的服务器。 这意味着如果您输入 172.217.0.0,您将到达 Google 主页。 但是,情况与 127.0.0.1 不同,因为对该地址的请求不会被转发到 Internet。 TCP/IP 从第一个块 (127) 中识别出您不想访问 Internet,而是在呼叫自己。 然后这会触发环回。
事实
相反,该协议不接受发往 127.0.0.1 的外部请求,因为这意味着攻击者可能会试图潜入他们的系统。 据报道,从保留 IP 地址(如 127.0.0.1)出现在互联网上的数据包被称为火星数据包。
创建一个环回设备,以便到您自己的计算机的反向链接正常工作。 这是通过操作系统创建的虚拟接口。 对于 Unix 系统,该界面称为 lo 或 lo0,也可以使用 ifconfig 命令显示。 用于 Windows 的类似命令是 ipconfig。
开发人员使用本地主机来测试程序和 Web 应用程序。网络管理员也可以使用环回来测试网络连接。 localhost 的另一个实际用途是 hosts 文件,您可以在其中使用环回来阻止恶意网站。
本地主机在 Web 服务器中的主要用途是对需要通过 Internet 进行通信的应用程序进行编程。在开发过程中,重要的是要确定应用程序在可以访问 Internet 后是否真的按预期工作。 Localhosts 的其他功能只有在可以在 Internet 上找到所需文件的情况下才能实现 – 例如,在您的 PC 上打开 HTML 文档或将其加载到服务器上并访问它是有区别的。发布未完成的产品而不进行测试是没有意义的,因此开发人员使用环回来测试它们。他们可以刺激连接,同时避免网络绕道:相反,连接完全保持在他们自己的系统内。
使用 localhost 进行测试的另一个优点是它的速度。当您通过 Internet 发送请求时,需要 100 多毫秒。如果向 localhost 发送 ping,最大传输时间仅为 1 毫秒。通过这项技术,您还可以了解 Internet 协议是否正确实施。要自己测试,只需打开命令提示符 (Windows) 或终端 (Unix/Mac) 并使用 ping 命令。您可以将其发送到域 localhost 或直接发送到 IP 地址。
ping localhost
ping 127.0.0.1
如果您想在您的 PC 上设置您自己的测试服务器以通过 localhost 对其进行寻址,您首先需要安装正确的软件。 通常可以在您自己的计算机上运行任何标准 Web 服务器,但也有专门设计用作 localhost 的特殊软件——例如 XAMPP。
本地主机也在主机文件中发挥作用。 原则上,该文件是域名系统 (DNS) 的前身:在其中可以将 IP 地址分配给相应的域。 如果在浏览器中输入网址,需要将域名翻译成IP地址。 它曾经是主机文件,但现在您通常会使用全球 DNS。 但是,主机文件仍然存在于大多数操作系统中。 对于 Windows,您可以在 \system32\drivers\etc\hosts 下找到该文件; 对于 macOS 和其他 Unix 系统,它位于 /etc/hosts 下。
如果您自己没有进行任何文件更改,则可能还剩下以下两个条目:
127.0.0.1 localhost
::1 localhost
这确保了 localhost 的名称解析不必通过 Internet 完成。您还可以使用该文件来阻止某些网站。为此,请在列表中输入要阻止的网站,并为域分配 IP 地址 127.0.0.1。如果您(或者可能是恶意脚本)尝试调用锁定的域,浏览器将首先检查主机文件,并在那里找到您的条目。另一种选择是使用域名 0.0.0.0。
然后浏览器会尝试访问服务器上对应的127.0.0.1网站。但是,浏览器不太可能找到它,因为请求的文件将不存在。但是,如果您已经设置了自己的测试服务器,那么浏览器可能会找到 home.html,但这只是您自己的文件。如果您尚未设置自己的测试服务器,则会出现错误消息而不是请求的网站。该技术还可用于关闭整个系统的广告插入。为了不必手动输入每个条目,您可以在 Internet 上找到已完成且定期扩展的主机文件。
注意
浏览 Internet 时,hosts 文件可能会对您的安全性产生重大影响。 尽管该文件适用于阻止恶意网站,但犯罪分子仍然可以操纵它。 因此,您需要确保在未先检查之前不要从其他网站复制条目,并确保恶意软件不会在您没有意识到的情况下尝试创建条目。