> 文章列表 > 在Docker踩坑之后才了解了127.0.0.1和0.0.0.0的区别

在Docker踩坑之后才了解了127.0.0.1和0.0.0.0的区别

在Docker踩坑之后才了解了127.0.0.1和0.0.0.0的区别

127.0.0.1和0.0.0.0

本小节的内容来自ChatGPT

127.0.0.1和0.0.0.0都是IP地址,但它们之间有一些重要的区别。

127.0.0.1是一个特殊的IP地址,也称为本地回环地址。它是一个保留的IP地址,用于在同一台计算机上的进程之间进行通信。当您将应用程序绑定到127.0.0.1地址时,它将只能通过该计算机上的本地网络接口进行访问。这意味着其他计算机无法通过网络访问该应用程序。

0.0.0.0是另一个特殊的IP地址,也称为通配符地址。当您将应用程序绑定到0.0.0.0地址时,它将监听该计算机上的所有网络接口,并通过这些接口接受流量。这意味着任何可以访问该计算机的网络设备都可以连接到应用程序。在网络编程中,0.0.0.0通常用于创建一个侦听所有可用IP地址和端口的服务器。

因此,当您将应用程序绑定到127.0.0.1时,它只能在本地计算机上访问。但是,当您将应用程序绑定到0.0.0.0时,它可以在任何可访问该计算机的网络接口上访问。

缘由

http://www.dedeyun.com/it/server/84533.html

在使用Docker部署一个HTTP服务时,我发现了一个问题:如果Docker中的HTTP服务监听了127.0.0.1:port,启动Docker容器绑定了该端口,但是无法在主机访问Docker中的HTTP服务。当改成监听0.0.0.0:port之后,就可以访问了。

百度搜索这个问题时,也发现已经了类似的文章:docker部署golang http服务时端口无法访问的问题解决。