127.0.0.1、0.0.0.0和本机IP地址的区别和使用

点击打开链接

一、表面上的区别如下:

   首先假设本机有多个网卡:eth0 :192.168.0.1       eth1:192.168.1.1     lo: 127.0.0.1

    0.0.0.0 不能ping通,代表本机所有的IP地址;
    监听127.0.0.1,创建Socket,那么用本机地址建立tcp连接不成功,反过来也是如此;也就是,监听时采用的地址为192.168.0.1,就只能用192.168.0.1进行连接。
    而监听0.0.0.0创建Socket,那么无论使用127.0.0.1或本机ip都可以建立tcp连接,也就是不论通过127.0.0.1或192.168.0.1、192.168.1.1都能连接成功。
    0.0.0.0建立tcp连接的时候也可以通过绑定IP_ADDR_ANY来实现。

    那么问题来了,还回地址必须是127.0.0.1么?

        127.0.0.1、0.0.0.0和本机IP地址的区别和使用_第1张图片

      答案:不是必须!IPv4 的环回地址是保留地址之一 127.0.0.1。尽管只使用 127.0.0.1 这一个地址,但地址 127.0.0.0 到 127.255.255.255 均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。

      可以做一个简单的测试,用ssh [email protected] 然后登录看看是不是还是本机?不用修改ip,随意一个此范围内长度ip地址均可以ping通,并且通过ssh登录到本机。

二、事实上处理的区别,如下图:

127.0.0.1、0.0.0.0和本机IP地址的区别和使用_第2张图片

他们是在数据链路层区别开的,路径很清楚,就不详述了。

你可能感兴趣的:(127.0.0.1、0.0.0.0和本机IP地址的区别和使用)