我发现了一些与此相关的文章,但对我来说还不够。我想知道localhost
工作原理,为什么在许多不同的机器上都一样?
请问该怎么localhost
阻止访问网站时,我们使用它的host
文件,以封锁网站?
我发现了一些与此相关的文章,但对我来说还不够。我想知道localhost
工作原理,为什么在许多不同的机器上都一样?
请问该怎么localhost
阻止访问网站时,我们使用它的host
文件,以封锁网站?
Answers:
我不会在这里谈论Windows的情况,因为它有点不同,但是我们可以这样说:在每个类似Unix的操作系统中,您都有两个网络设备:
第一个纯粹是“虚拟的”。就像您看不到的以太网插头一样。第二个与计算机中的以太网插头有关。
回送接口有什么作用?您发送回环回的所有流量都会回来。
就像您的以太网设备获得IP地址(例如192.168.1.20)一样,回送设备也将具有IP地址,即127.0.0.1。为了使其更容易,您也可以访问它localhost
。
如果查看典型的Unix /etc/hosts
文件,您将看到127.0.0.1映射到“ localhost”。因此,每当您键入“ localhost”时,您的计算机就会知道调用127.0.0.1。
这就是为什么您可以“阻止”应用程序的原因。假设您不希望计算机将数据发送到Microsoft。然后,您可以简单地将每个请求重定向microsoft.com
到127.0.0.1。每次尝试联系microsoft.com
都将导致失败。
*每个实际上具有硬件以太网端口的系统
Internet协议(IP)地址属于四个基本类别之一。
根据协议,127.0.0.1是属于这些类别中最后一个的那些地址之一。
作为人类,我们不太容易记住IP号,但是记住诸如superuser.com,www.google.com之类的名称以及其他类似名称没有问题。当互联网很小(非常小)时,人们与互联网上的其他人共享“主机”文件,因此他们不必记住数字。该主机文件包含一对IP地址和一个或多个主机名。当有人试图通过主机名访问主机时,计算机软件足够了解,可以在主机文件中查找主机。自那时以来,互联网已经发展得如此之快,以至于除了使用旧样式的主机文件之外,我们现在还使用域名系统(DNS)来将名称解析为IP号。大多数计算机都设置为先在主机文件中查找名称,然后在DNS中查找名称(如果失败)。
现在您有了背景,下面是它的工作原理(通常):
当您将此条目添加到主机文件中时,只要您的计算机尝试查找www.foo.com,它都会尝试访问IP地址为127.0.0.1的该站点,因为您告诉它这是www的Internet地址。 foo.com。请记住,127.0.0.1将允许计算机与自己对话,因此尝试在浏览器中转到127.0.0.1将尝试与计算机上的Web服务器联系。如果您输入的是2.3.4.5而不是127.0.0.1,则打开www.foo.com时它将尝试与地址为2.3.4.5的计算机联系。
127.0.0.1 localhost
127.0.0.1 www.foo.com
127.0.0.1 foo.com
将主机文件用于此类操作的坏事是,一旦您将一个条目添加到主机文件中,您就承担了使该信息保持最新的责任。如果您没有将条目放置在主机文件中,则计算机将尝试使用DNS查找IP地址,然后使用该IP地址与服务器联系。
这样做的好处是,如果您永远不希望任何人仅通过计算机上的主机名与www.foo.com进行对话,则将条目添加到主机文件中(关键字-可能)可以防止这种情况的发生。如果目标是通过任何方式(不仅仅是通过主机名)防止访问某个特定站点,那么还有其他更好且更可靠的方法可以防止这种情况发生,例如正确使用防火墙。
我在《 TCP / IP指南》中发现了一个演示文稿,使我印象深刻:
通常,当TCP / IP应用程序要发送信息时,该信息沿着协议层向下传播到IP,在IP中将其封装在IP数据报中。然后,该数据报向下传递到设备物理网络的数据链路层,以便在到达IP目标的途中传输到下一跳。
但是,为回送功能预留了一个特殊的地址范围。这是127.0.0.0到127.255.255.255的范围。主机发送到127. x的 IP数据报。X。x回送地址没有向下传递到数据链路层进行传输。相反,它们在IP级别“环回”到源设备。从本质上讲,这代表了常规协议栈的“短路”。数据由设备的第三层IP实现发送,然后立即被其接收。
此外,罗格斯大学开设了网络课程,其中包括正常的主机间通信示例,
和这一个回送数据的流:
对于问题的第二部分,如果将网站的主机名放在地址为127.0.0.1的主机文件中,则意味着当您在浏览器中键入地址而不是使用DNS查找正确的地址时,它将找到它在您的主机文件中首先将其解析为localhost,而不是转到网站的地址,而是开始与您的计算机通信,这将导致网站无法加载。