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么?

        

      答案:不是必須!IPv4 的環回地址是保留地址之一 127.0.0.1。盡管只使用 127.0.0.1 這一個地址,但地址 127.0.0.0 到 127.255.255.255 均予以保留。此地址塊中的任何地址都將環回到本地主機中。此地址塊中的任何地址都絕不會出現在任何網絡中。

      可以做一個簡單的測試,用ssh root@127.2.3.4 然后登錄看看是不是還是本機?不用修改ip,隨意一個此范圍內長度ip地址均可以ping通,並且通過ssh登錄到本機。

二、事實上處理的區別,如下圖:

他們是在數據鏈路層區別開的,路徑很清楚,就不詳述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM