127.0.0.1是什么?
127.0.0.1是回送地址,指本地機,一般用來測試使用;也就是說“127.x.x.x”是本機回送地址,即主機IP堆棧內部的IP地址,主要用于網絡軟件測試以及本地機進程間通信。
本機IP地址127.0.0.1和0.0.0.0的區別是什么?
概述
總體來講,127.0.0.1是本機的環回地址,0.0.0.0代表本機上任何IP地址。下面分別詳細講解。
環回地址 127.0.0.1
嚴格來說127.0.0.1只是環回地址之一。所有127.x.x.x都是環回地址。從127.0.0.0 到 127.255.255.255 均予以保留。此地址塊中的任何地址都將環回到本地主機中。此地址塊中的任何地址都絕不會出現在任何網絡中。
環回地址:所有發往該類地址的數據包都應該被 loop back。正常的網絡包從IP層進入數據鏈路層,然后發送到網絡上, 而發向loopback地址的包,直接在IP層短路了,也就是發到IP層的包直接被IP層接收了,不再向下發送。
環回地址主要用來做回環測試,通過使用ping 127.0.0.1 測試某臺機器上的網絡設備,操作系統或者TCP/IP實現是否工作正常。
任何地址 0.0.0.0
0.0.0.0 不能ping通。0.0.0.0就是任何地址IP_ADDR_ANY,任何地址的意思就是包括環回地址。
任何地址IP_ADDR_ANY的意思也就是,不管主機有多少個網口,多少個IP,如果監聽本機的0.0.0.0上的端口,就等于監聽機器上的所有IP端口。數據報的目的地址只要是機器上的一個IP地址,就能被接受。
舉例說明
為了講清楚本機IP地址、127.0.0.1和0.0.0.0三者的區別。下面舉例說明,先假設pc1(server+client)有兩個網卡: 192.168.0.1 , 10.10.152.8 。pc2只是client。
pc1(server)只監聽 127.0.0.1 ,pc1(client)能連上 127.0.0.1 和 0.0.0.0 ( 192.168.0.1 和 10.10.152.8 連不上);pc2連不上pc1的任何地址( 192.168.0.1 或者 10.10.152.8 );
pc1(server)只監聽 192.168.0.1 ,pc1(client)能連上 192.168.0.1 和 0.0.0.0 ( 127.0.0.1 和 10.10.152.8 連不上);pc2能連上pc1的 192.168.0.1 ( 10.10.152.8 連不上);(只監聽 192.168.0.1與此例類似)
pc1(server)監聽 192.168.0.1 和 10.10.152.8 ,pc1(client)能連上 192.168.0.1 、 10.10.152.8 和 0.0.0.0 ( 127.0.0.1 連不上);pc2都能連上pc1的(包括 10.10.152.8 和 192.168.0.1 );
pc1(server)只監聽 0.0.0.0 ,pc1(client)都能連上(包括 10.10.152.8 、 0.0.0.0 、 127.0.0.1 和 192.168.0.1 );pc2都能連上pc1的(包括 10.10.152.8 和 192.168.0.1 );
總結
對于只進行單機測試,一般只需要監聽 127.0.0.1 。
對于多機測試,可監聽所有ip 0.0.0.0 或者只監聽某個或某幾個具體的ip。對于多機連接,監聽127.0.0.1 無效,監聽 0.0.0.0 就沒有了屏蔽其他ip的功能。