127.0.0.1、0.0.0.0和localhost有什么区别?

17

我不理解这些术语之间的区别以及它们如何相互关联。

我查看了计算机上的hosts文件,发现127.0.0.1和localhost是连接在一起的,但我不确定它们是如何连接的,也不知道0.0.0.0在其中的作用。

我看到了其他对这个问题的答案,但我是一个新手,其他关于环回和元地址的答案很难理解。


相关/类似问题:https://dev59.com/AGIi5IYBdhLWcg3w9wUU - jdhao
2个回答

25

是的,在本地系统上,localhost 会转换成 127.0.0.1,它将永远是你当前使用的计算机的 IP 地址。例如,在你的电脑上访问 127.0.0.1(或 localhost)只是尝试与自己的计算机建立连接(如果你正在托管本地 Web 服务器,则非常有用)。

与此同时,0.0.0.0 的用途不同。在具有多个 IP 地址的服务器或任何机器上,它可用于引用该机器使用的所有 IP 地址。例如,如果你创建一个带有 serverSocket 的简单 Java 应用程序,可能希望使服务器套接字监听所有服务器 IP 地址上的传入连接。然后,你将设置服务器套接字以侦听 0.0.0.0。希望这能帮到你!


谢谢,这很有帮助。我猜最常见的使用场景是让人们在自己的电脑上开发和测试网站和应用程序? - j obe
2
localhost127.0.0.1仅用于出站连接。 0.0.0.0仅用于监听(又称“绑定”)连接,并且是一个通配符,意味着“在此计算机上监听所有网络接口”。 如果您只有1个网络接口(即一个以太网端口或一个Wi-Fi连接),它们似乎是相同的,但是一旦您有多个连接,就会有所不同。 - Mark Lakata

4
任何位于整个127.0.0.0/8地址块中的地址将把发送的数据回送到计算机内部。
本地主机通常设置为127.0.0.1,但也可以在127.0.0.0/8块中的任何地址上进行设置。 0.0.0.0地址实际上意味着任何IPv4地址。

本地主机可以设置为任何地址。它在hosts文件中定义,DNS解析器首先查找该文件。 - rodolk
这是正确的,但它不会是实际的本地主机。它将尝试将流量发送到本地主机以外的某个地方。 - Ron Maupin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接