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