一文理解 localhost、127.0.0.1、本機 IP、公有 IP、私有 IP、網(wǎng)卡 (MAC) 等!
§1 本機IP

我們電腦主板上都內(nèi)置了多種網(wǎng)卡,一般主要有以下幾類:
虛擬網(wǎng)卡(Loopback)
注意:它是虛擬的,并不是物理網(wǎng)卡,也被稱為是本地環(huán)回地址(或接口),一般將
127.0.0.1
作為本地環(huán)回地址。有線網(wǎng)卡/以太網(wǎng)卡(Ethernet)
這是以太網(wǎng)(局域網(wǎng))使用的,我們?nèi)粘Uf的網(wǎng)卡指的就是這個,插入的就是網(wǎng)線。
無線網(wǎng)卡(WLAN)
這是無線局域網(wǎng)所使用的網(wǎng)卡,筆記本上常內(nèi)置此網(wǎng)卡,它用的是無線電技術(shù),不需要像以太網(wǎng)卡那樣插網(wǎng)線。
以上這些網(wǎng)卡都會綁定一個本機 IP...
§2?localhost是一種特殊的域名

首先 localhost
它并不是 IP,而是一種特殊的域名(沒有后綴),默認的情況下它解析到的是本地 IP(即 127.0.0.1
),主要通過本機的 hosts
文件進行管理,如果你愿意,也可以把 localhost
域名解析到某個公網(wǎng) IP 上去,也可以被配置為任意的 IP 地址(也就是說,可以通過 hosts 這個文件進行更改),不過通常情況下都(如下)指向:
IPv4:表示
127.0.0.1
IPv6:表示
[::1]
hosts 文件位置:C:\Windows\System32\drivers\etc
§3 127.0.0.1是一種本機保留的私有IP

127.0.0.1
它是一個私有 IP,代表(或者說真正的名稱)的就是本機環(huán)回地址,其實本質(zhì)上是綁定在虛擬網(wǎng)卡(loopback)上的 IP。
那什么是環(huán)回地址呢?它有什么作用呢?
環(huán)回地址:環(huán)回地址是主機用于向自身發(fā)送通信的一個特殊地址(也就是一個特殊的目的地址)。
可以這么說:同一臺主機上的兩項服務(wù)若使用環(huán)回地址而非分配的主機地址,就可以繞開 TCP/IP 協(xié)議棧的下層(也就是說:不用再通過什么鏈路層、物理層、以太網(wǎng)傳出去了,而是可以直接在自己的網(wǎng)絡(luò)層,運輸層進行處理了)
網(wǎng)絡(luò)號為 127 的地址根本就不是一個網(wǎng)絡(luò)地址,因為產(chǎn)生的 IP 數(shù)據(jù)報就不會到達外部網(wǎng)絡(luò)接口中,是不離開主機的包。
所以說:127.0.0.1
是保留地址之一,只是被經(jīng)常的使用,來檢驗本機 TCP/IP 協(xié)議棧而已,如果我們可以 ping 通的話,就說明本機的網(wǎng)卡和 IP 協(xié)議安裝都沒有問題(跟我們當(dāng)前主機有沒有聯(lián)網(wǎng)沒有一點關(guān)系)。
事實上 IPv4 保留 127.0.0.0
整個網(wǎng)段的地址用于環(huán)回測試(只是有兩個特殊的保留),127.0.0.1
只是其中一個,你可以 ping 通這個網(wǎng)段里的所有地址,也可以在瀏覽器中輸入任意一個地址訪問本機的 Web 服務(wù)。另外一個經(jīng)常被混淆的 IP 地址是 0.0.0.0
,它才是真正意義上的本機地址,它的用法跟 127.0.0.1
完全不同。
舉例說明:比如電腦有兩塊網(wǎng)卡,其中一塊使用公網(wǎng) IP 用于連接互聯(lián)網(wǎng),另外一塊使用私有 IP 連接局域網(wǎng),如果本機搭建了 Web 服務(wù),并且希望外網(wǎng)和內(nèi)網(wǎng)都能正常訪問,可以在服務(wù)器的配置中將服務(wù)器地址改為 0.0.0.0
.
§4?Localhost、本機 IP、127.0.0.1 的區(qū)別

網(wǎng)絡(luò)需求不同
localhost
和127.0.0.1
并不需要聯(lián)網(wǎng)訪問,即使在無網(wǎng)絡(luò)環(huán)境下訪問這兩者都能找到本機。本機 IP 中的有線網(wǎng) IP 和無線網(wǎng) IP 都是需要聯(lián)網(wǎng)后才能正常分配和訪問的,它們是本機對外開放的 IP 地址。
localhost
是本機訪問;127.0.0.1
是本機訪問;本機 IP 是本機或外部訪問。localhost
是域名,默認是指向127.0.0.1
;而本機 IP 就是本機對外放開訪問的 IP 地址,這個網(wǎng)址就是與物理網(wǎng)卡綁定的 IP 地址。在一個局域網(wǎng)里,同一網(wǎng)段(即同一局域網(wǎng)下的同一網(wǎng)段)的其他電腦就可以用上面的 IP 地址來訪問你的電腦(私有地址下文介紹)。
§5 網(wǎng)卡地址 & IP地址

?網(wǎng)卡地址
網(wǎng)卡地址即 MAC 地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網(wǎng)絡(luò)設(shè)備的位置。
在 OSI 模型中,第三層網(wǎng)絡(luò)層負責(zé) IP 地址,第二層數(shù)據(jù)鏈路層則負責(zé) MAC 地址。因此一個主機會有一個 MAC 地址,而每個網(wǎng)絡(luò)位置會有一個專屬于它的 IP 地址。
MAC 地址是網(wǎng)卡決定的,是固定的,也是唯一的。形象的說,MAC 地址就如同我們身份證上的身份證號碼,具有全球唯一性。
?IP地址
IP 地址是指互聯(lián)網(wǎng)協(xié)議地址。IP 地址是 IP 協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個網(wǎng)絡(luò)和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。
?小結(jié)
通俗來講就是物理地址是指網(wǎng)卡的硬件地址,一般是固化在網(wǎng)卡上的,全球沒有任何兩塊網(wǎng)卡的物理地址是一樣的,它具有唯一性!
IP 地址是網(wǎng)絡(luò)分配給網(wǎng)卡使用的軟地址,是可以改變的!
§6?公網(wǎng)IP?& 私網(wǎng)IP

我們可以通過127.0.0.1訪問本機,通過私有IP訪問局域網(wǎng)內(nèi)部的其它設(shè)備,通過公網(wǎng)IP訪問互聯(lián)網(wǎng)上的其它設(shè)備。
??公有 IP 地址(公網(wǎng) IP)
組建一個企業(yè)級網(wǎng)絡(luò),需要去向 “電信運營商 ISP” 申請一個接入 Internet (我們常說的接入網(wǎng)) 的寬帶,同時 ISP 還會給我們分配一個或多個 IP 地址,這些 IP 地址可以供我們企業(yè)內(nèi)部上網(wǎng),這些 ISP 分配給我們的 IP,就是公有 IP。
公有地址(Public address,也可稱為公網(wǎng)地址)由 Internet NIC(Internet Network Information Center 因特網(wǎng)信息中心)負責(zé)。這些 IP 地址分配給注冊并向 Internet NIC 提出申請的組織機構(gòu)。通過它直接訪問因特網(wǎng),它是廣域網(wǎng)范疇內(nèi)的。
??私有 IP 地址(私網(wǎng) IP)
我們企業(yè)或家庭內(nèi)部組建局域網(wǎng)用的 IP,一般都會用私有 IP。
私有地址(Private address,也可稱為專網(wǎng)地址)屬于非注冊地址,專門為組織機構(gòu)內(nèi)部使用,它是局域網(wǎng)范疇內(nèi)的,私有 IP 禁止出現(xiàn)在 Internet 中,在 ISP 連接用戶的地方,將來自于私有 IP 的流量全部都會阻止并丟掉。
如果在企業(yè)內(nèi)部的電腦要訪問 Internet,則需要在企業(yè)邊界上用 “NAT 技術(shù)” 將私網(wǎng) IP 轉(zhuǎn)成公網(wǎng) IP 才能正常的上網(wǎng)!
??公網(wǎng)與私網(wǎng)的訪問
如果私網(wǎng) IP 要訪問公網(wǎng)網(wǎng)站的話,需要在私網(wǎng)和公網(wǎng)接口處,做 SNAT。
一般我們稱運營商搭建的網(wǎng)絡(luò)為公網(wǎng),主要負責(zé)連接各個公司或者家庭的網(wǎng)絡(luò),里面的 IP 都是公網(wǎng) IP,里面也只會出現(xiàn)公網(wǎng) IP 組成的路由,因此私網(wǎng) IP 進到公網(wǎng)后,是沒有路由的,會被丟棄,所以上面提到私網(wǎng)訪問公網(wǎng)的話,需要 SNAT,把私網(wǎng) IP 換成公網(wǎng) IP。
聰明的你肯定會想到,公網(wǎng)要訪問私網(wǎng)咋辦?這其實涉及到 DNAT、VPN 等技術(shù)。
還有就是兩個私網(wǎng)要跨公網(wǎng)通信咋辦?這可以通過 VPN 解決。
補充:內(nèi)網(wǎng)的話,可以簡單理解為私網(wǎng),不過其實這個概念的出發(fā)點是對于企業(yè)而言,在企業(yè)內(nèi)部叫私網(wǎng),企業(yè)外部就叫外網(wǎng)。
從概念上講一個企業(yè)以外的網(wǎng)絡(luò),可以包括運營商的網(wǎng)絡(luò)(即公網(wǎng)),也可以包括其他企業(yè)或者家庭的網(wǎng)絡(luò)(即私網(wǎng))。
所以說,外網(wǎng)與公網(wǎng)不能化等號的。
但其實也沒有那么特意去區(qū)分,公網(wǎng)=外網(wǎng),私網(wǎng)=內(nèi)網(wǎng),可以簡單這么理解,沒必要去咬文嚼字(但至少還是要懂得我上面說的外網(wǎng)與公網(wǎng)的區(qū)別)。
?全部 IP 地址的范圍
IP 地址,一共分成了 5 類,范圍分別如下:
A類 IP:
1.0.0.1
–127.255.255.254
B類 IP:
128.0.0.1
–191.255.255.254
C類 IP:
192.0.0.1
–223.255.255.254
D類 IP:
224.0.0.0
–239.255.255.255
E類 IP:
240.0.0.0
–255.255.255.255
而其中,能在 Internet 或被用戶使用的有 A、B、C 三類,而D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點發(fā)送信息時用,E類地址保留給將來使用。
??特殊的網(wǎng)址:
每一個字節(jié)都為 0 的地址(“
0.0.0.0
”)對應(yīng)于當(dāng)前主機;IP 地址中的每一個字節(jié)都為 1 的 IP 地址(“
255.255.255.255
”)是當(dāng)前子網(wǎng)的廣播地址;IP 地址中凡是以 “11110” 開頭的 E 類 IP 地址都保留用于將來和實驗使用。
IP 地址中不能以十進制 “127” 作為開頭,該類地址中數(shù)字
127.0.0.1
到127.255.255.255
用于回路測試,如:127.0.0.1
可以代表本機IP地址,用 “http://127.0.0.1” 就可以測試本機中配置的 Web 服務(wù)器。網(wǎng)絡(luò) ID 的第一個 6 位組也不能全置為 “0”,全 “0” 表示本地網(wǎng)絡(luò)。
?公有 IP 地址的范圍
在 IP 地址 3 種主要類型里,各保留了 3 個區(qū)域作為私有地址,也就是比較常用的 IP 地址。其地址范圍如下:
A 類的公有 IP:
1.0.0.0
~9.255.255.255
11.0.0.0
~126.255.255.255
B 類的公有 IP:
128.0.0.0
~172.15.255.255
172.32.0.0
~191.255.255.255
C 類的公有 IP:
192.0.0.0
~192.168.255.255
192.169.0.0
~223.255.255.255
?私有 IP 地址的范圍
A 類私有 IP 地址:
10.0.0.0
~10.255.255.255
即10.0.0.0/8
B 類私有 IP 地址:
172.16.0.0
~172.31.255.255
即172.16.0.0/12
C 類私有 IP 地址:
192.168.0.0
~192.168.255.255
即192.168.0.0/16
這些地址是不會被 Internet 分配的,它們在 Internet 上也不會被路由,雖然它們不能直接和 Internet 連接,但通過技術(shù)手段仍舊可以和 ?Internet 通訊(NAT 技術(shù))。我們可以根據(jù)需要來選擇適當(dāng)?shù)牡刂奉悾趦?nèi)部局域網(wǎng)中將這些地址像公用 IP 地址一樣地使用。在 Internet 上,有些不需要與 Internet 通訊的設(shè)備,如打印機、可管理集線器等也可以使用這些地址,以節(jié)省 IP 地址資源。
§7?網(wǎng)段?& 局域網(wǎng)

網(wǎng)段是指一個計算機網(wǎng)絡(luò)使用同一層物理層設(shè)備(如集線器,交換機)能夠直接通信的那一部分,即每臺電腦只能和自己同一網(wǎng)段的電腦直接進行通信。
局域網(wǎng)是指由交換機構(gòu)成的一整個網(wǎng)絡(luò)系統(tǒng),局域網(wǎng)內(nèi)的所有設(shè)備一般都處于同一網(wǎng)段,因此可以直接進行通信,但是局域網(wǎng)也可以劃分成多個網(wǎng)段,如使用 VLAN。
關(guān)于 VLAN 的介紹,可以看這篇博客(強推):info.support.huawei.com/info-finder…
只有同一局域網(wǎng)內(nèi)的相同網(wǎng)段的設(shè)備才可直接進行通信。所以我的理解,當(dāng)局域網(wǎng)內(nèi)只有一個網(wǎng)段時,該局域網(wǎng)就可以等價于網(wǎng)段。
?如何區(qū)分是否同一網(wǎng)段
理解了網(wǎng)段后,我們接下來來講解下如何判別兩網(wǎng)段是否為同一網(wǎng)段。
根據(jù)掩碼確定 IP 地址網(wǎng)段只需要使用 IP 地址
&
子網(wǎng)掩碼即可!
例 1
比如以下兩個 IP 地址
IP 地址1:
192.168.1.1
子網(wǎng)掩碼:255.255.255.0
IP 地址2:
192.168.1.2
子網(wǎng)掩碼:255.255.255.0
我們可以直接的判斷,它們是屬于同一個 (192.168.1.0
) 網(wǎng)段的 IP 地址。
例 2
那么對于下面這樣的呢?
IP 地址1:
192.168.1.1
子網(wǎng)掩碼:255.255.255.0
IP 地址2:
192.168.1.2
子網(wǎng)掩碼:255.255.0.0
這兩個 IP 地址雖然在不看掩碼的情況下,比較像,但他們并不是同一個網(wǎng)段內(nèi)的。
這可以從子網(wǎng)掩碼來判斷:
IP 192.168.1.1
& 掩碼 255.255.255.0
屬于 192.168.1.0
網(wǎng)段;
而 IP 192.168.1.2
& 掩碼 255.255.0.0
則屬于 192.168.0.0
網(wǎng)段。
例 3
IP 地址1:
192.168.1.1
子網(wǎng)掩碼:255.255.252.0
IP 地址2:
192.168.2.1
子網(wǎng)掩碼:255.255.252.0
很明顯,我們這個和上面例1 的 IP 地址是一樣的,只是子網(wǎng)掩碼不一樣,如果不看子網(wǎng)掩碼,首先可能就誤判它們不是同一個網(wǎng)段。
經(jīng)過判別,兩個 IP 地址都是屬于 192.168.0.0
網(wǎng)段,所以它們是同屬于一個網(wǎng)段的。