127.0.0.1和localhost和本機IP三者的區別!

1,

先來說下回送地址(Loopback Address):

回送地址是主機用於向自身發送通信的一個特殊地址(也就是一個特殊的目的地址)。
可以這麼說:同一臺主機上的兩項服務若使用回送地址而非分配的主機地址,就可以繞開TCP/IP協議棧的下層。(也就是說:不用再通過什麼鏈路層,物理層,以太網傳出去了,而是可以直接在自己的網絡層,傳輸層進行處理了)

IPv4的回送地址爲:127.0.0.0到127.255.255.255都是回送地址(只是有兩個特殊的保留),此地址中的任何地址都不會出現在網絡中
網絡號爲127的地址根本就不是一個網絡地址(因爲產生的IP數據報就不會到達外部網絡接口中,是不離開主機的包)

當操作系統初始化本機的TCP/IP協議棧時,設置協議棧本身的IP地址爲127.0.0.1(保留地址),並注入路由表。當IP層接收到目的地址爲127.0.0.1(準確的說是:網絡號爲127的IP)的數據包時,不調用網卡驅動進行二次封裝,而是立即轉發到本機IP層進行處理,由於不涉及底層操作。因此,ping 127.0.0.1一般作爲測試本機TCP/IP協議棧正常與否的判斷之一。

所以說:127.0.0.1是保留地址之一,只是被經常的使用,來檢驗本機TCP/IP協議棧而已,我們可以Ping回送地址。通常如果回送地址Ping不通,就說明IP堆棧出了故障。如果通的話,表明網絡出了問題。

2,

localhost首先是一個域名(如同:www.baidu.com),也是本機地址,它可以被配置爲任意的IP地址(也就是說,可以通過hosts這個文件進行更改的),不過通常情況下都指向:(如下)
IPv4:表示   127.0.0.1

IPv6:表示   [::1]

整個127.*網段通常被用作loopback網絡接口的默認地址,按照慣例通常設置爲127.0.0.1。我們當前這個主機上的這個地址,別人不能訪問,即使訪問,也是訪問自己。因爲每一臺TCP/IP協議棧的設備基本上都有local/127.0.0.1

在 Windows 中,這個域名是預定義的,從C:\Windows\System32\drivers\etc\ hosts 文件中可以看出:

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost    ( ipv4)
# ::1            localhost     (ipv6)

而在 Linux 中,其定義位於 /etc/hosts 中:
127.0.0.1 localhost
注意這個值是可修改的,比如我把它改成
192.168.2.1 localhost
然後再去 ping localhost,提示就變成了
PING localhost (192.168.2.1) 56(84) bytes of data.

127.0.0.1 這個地址通常分配給 loopback 接口。loopback 是一個特殊的網絡接口(可理解成虛擬網卡),用於本機中各個應用之間的網絡交互。只要操作系統的網絡組件是正常的,loopback 就能工作。Windows 中看不到這個接口,Linux中這個接口叫 lo:

#ifconfig

eth0    Link encap:Ethernet hwaddr 00:00:00:00:00:00          

           inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0  

           ......

lo        Link encap:Local Loopback        

           inetaddr: 127.0.0.1 Mask: 255.0.0.0        

           ......

可以看出 lo 接口的地址是 127.0.0.1。事實上整個 127.* 網段都算能夠使用,比如你 ping 127.0.0.2 也是通的。但是使用127.0.0.1作爲loopback接口的默認地址只是一個慣例,比如下面這樣:

#ifconfig lo 192.168.1.1

#ping localhost       # ping不通了

#ping 192.128.1.1  # 可以通

3,

本機IP,我們可以理解爲本機有三塊網卡,一塊網卡叫做loopback(虛擬網卡),一塊叫做ethernet(有線網卡),一塊叫做wlan(你的無線網卡),

連接網絡,網卡傳輸,受防火牆和網卡限制

用於本機和外部訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章