0.0.0.0和127.0.0.1在Windows和Linux上的区别[duplicate]

bvn4nwqk  于 2022-11-02  发布在  Linux
关注(0)|答案(2)|浏览(193)

此问题在此处已有答案

What is the difference between 0.0.0.0, 127.0.0.1 and localhost?(3个答案)
5天前关闭。
我有一个服务器在0.0.0.0:18830上运行。在windows上,当我尝试使用python套接字连接到该服务器时

socket.connect_ex('0.0.0.0', 18830)

它将返回10049
使用以下代码

socket.connect_ex('127.0.0.1', 18830)

它返回0,表示可以
但是当我在WSL Debian上运行服务器和上面的两个代码时两个命令都将返回0
为什么会这样?

b1uwtaje

b1uwtaje1#

127.0.0.1loopback address(也称为localhost),0.0.0.0IP address,它是一个不可路由的元地址,用于指示无效、未知或不适用的目标。

0.0.0.0 和127.0.0.1很容易混淆,但我们要记住,带有四个零的地址有几种定义的用途,而127.0.0.1则有非常具体的用途,即允许设备向其自身发送消息。
0.0.0.0 可用于表示接受所有IP地址或阻止所有IP地址访问默认路由的任何内容,有时也称为通配符地址、未指定地址或INADDR_ANY。

sqyvllje

sqyvllje2#

这个答案的第一部分,直到水平线,是从服务器的Angular 看的,也就是服务的Angular 。
当您在0.0.0.0上提供服务时,这意味着它绑定到所有接口-因此,如果您的计算机有2个有线以太网卡和一个wifi接口,则任何网络上的任何客户端/设备都可以访问该服务。
当您在127.0.0.1上提供服务时,它将仅可用于在运行它的同一台计算机上运行的客户端。
本质上,0.0.0.0意味着 “任何地方和任何地方”,而127.0.0.1意味着 “就在这里,没有其他地方”
现在,让我们从尝试连接到服务的客户端的Angular 来看。
如果客户端尝试连接到127.0.0.1,则意味着它正在寻找与自己运行在同一台计算机上的服务器。
如果客户端试图连接到0.0.0.0,而这并不足以成功--你是指在你的主办公室里的一个可爱的、质量有保证的服务,还是在一个遥远的、没有法律的国家里的一些肮脏的、恶意软件服务器?

相关问题