完全搞明白webpack-dev-server 配置 host 0.0.0.0做用

今天在研究 webpack-dev-server 配置 host 時,看到手冊中這樣的一句話:webpack

//指定使用一個 host,默認是 localhost,若是你但願服務器外部可訪問,制定以下: host: "0.0.0.0"web

對於IP地址,你們並不陌生,特別是在網絡訪問中咱們會常用到(平時對域名如百度的www.baidu.com的訪問,本質就是對域名所綁定的IP地址的訪問)。windows

那麼IP地址是什麼呢?

首先,咱們要知道網絡中的相互訪問其實就是在進行二者間的數據傳遞。就如同送快遞同樣,快遞發出只有知道你的住址信息,才能將快遞送到你的手中。而在網絡訪問時,只有知道你在網絡中的地址信息,才能將數據發送到你的設備上。因此,IP地址就是你在網絡中的地址信息。與你現實地址不一樣的是,你的現實地址使用文字表示,而你在網絡中的地址(IP地址)是用二進制數字表示的。安全

簡要的瞭解下公網與內網中的IP地址

通常咱們會將網絡劃分公網(連Internet的)與內網。服務器

公有IP地址 通常稱公網中的IP地址爲公有地址。公有地址由Inter NIC(因特網信息中心)負責,這些IP地址分配給註冊並向Inter NIC提出申請的組織機構。公有地址是全球惟一的,公網中不可能存在兩個相同的IP地址。網絡

範圍:除了私有地址之外的地址,都屬於公有地址webpack-dev-server

私有IP地址 通常稱內網(即局域網)中的IP地址爲私有地址。私有地址是非註冊地址,用於組織機構內部使用。私有地址的範圍以下:oop

A類IP地址中:10.0.0.0–10.255.255.255 B類IP地址中:172.16.0.0–172.31.255.255 C類IP地址中:192.168.0.0–192.168.255.255 私有地址與公有地址不一樣,並非由Internet分配的,是不容許出如今Internet中的,咱們在公網中是看不到私有IP地址的,而且公有地址也不會使用上述的三類地址。因此,私有地址是不能直接與Internet鏈接的。測試

而若是想用私有地址與Internet鏈接來訪問公網,那該怎麼作?這就須要將私有IP地址轉換成公網IP地址,與外部鏈接。因此,咱們平時使用的路由器中會裝有一個叫作 NAT(網絡地址轉換) 的軟件,咱們的路由器中會至少會有一個有效的公網IP,NAT會將咱們的私有地址轉成路由器中的公網IP與外部Internet鏈接。而一樣的,由於使用的是路由器中的公共的公網IP來鏈接Internet,因此這個內網中的PC在Internet中顯示的都是路由器的公共IP,這樣作不只提供了必定程度的安全,也能夠有效的減緩可用的IP地址空間的枯竭問題。(像咱們學校或者公司的內網通常都是這麼作的).net

另外還有一點,在同一個局域網內,IP地址是惟一的;可是在不一樣的局域網內,IP地址是能夠重複出現的。

舉個小例子: 在局域網A中,有個主機的IP地址是192.168.10.128,那麼毫不可能在局域網A中還有其餘主機的IP地址爲192.168.10.128。可是在局域網B中卻能夠有主機的IP地址也是192.168.10.128。 若是局域網A中的192.168.10.128主機與局域網B中的192.168.10.128主機通訊,不會衝突嗎?不會,由於上述說過,它們最終都是使用路由器中的公網IP來鏈接外網的,而公網IP是全球惟一的。

localhost、127.0.0.1和0.0.0.0和本機IP的區別

localhost localhost實際上是域名,通常windows系統默認將localhost指向127.0.0.1,可是localhost並不等於127.0.0.1,localhost指向的IP地址是能夠配置的

127.0.0.1

首先咱們要先知道一個概念,凡是以127開頭的IP地址,都是迴環地址(Loop back address),其所在的迴環接口通常被理解爲虛擬網卡,並非真正的路由器接口。

所謂的迴環地址,通俗的講,就是咱們在主機上發送給127開頭的IP地址的數據包會被髮送的主機本身接收,根本傳不出去,外部設備也沒法經過迴環地址訪問到本機。

小說明:正常的數據包會從IP層進入鏈路層,而後發送到網絡上;而給迴環地址發送數據包,數據包會直接被髮送主機的IP層獲取,後面就沒有鏈路層他們啥事了。

而127.0.0.1做爲{127}集合中的一員,固然也是個迴環地址。只不過127.0.0.1常常被默認配置爲localhost的IP地址。 通常會經過ping 127.0.0.1來測試某臺機器上的網絡設備是否工做正常。

0.0.0.0

首先,0.0.0.0是不能被ping通的。在服務器中,0.0.0.0並非一個真實的的IP地址,它表示本機中全部的IPV4地址。監聽0.0.0.0的端口,就是監聽本機中全部IP的端口。

本機IP

本機IP一般僅指在同一個局域網內,能同時被外部設備訪問和本機訪問的那些IP地址(可能不止一個)。像127.0.0.1這種通常是不被看成本機IP的。本機IP是與具體的網絡接口綁定的,好比以太網卡、無線網卡或者PPP/PPPoE撥號網絡的虛擬網卡,想要正常工做都要綁定一個地址,不然其餘設備就不知道如何訪問它。

小例子劇場(幫助理解本機IP、127.0.0.1和0.0.0.0)

如今有兩臺pc在同一個局域網內,分別爲pc1與pc2,pc1上有一個網卡,IP地址爲192.168.10.128

pc1中sever監聽127.0.0.1,則pc1中的client能夠連上127.0.0.1,192.168.10.128連不上;而pc2中client都連不上。 pc1中sever監聽192.168.10.128,則pc1中的client能夠連上192.168.10.128,127.0.0.1連不上;而pc2中client能連上192.168.10.128。 pc1中sever監聽0.0.0.0,則pc1中的client能夠連上127.0.0.1和192.168.10.128,pc2中的client能連上192.168.10.128。

補充

本渣渣理解的0.0.0.0是監聽本機全部能訪問的ip地址,好比127.0.0.1,好比局域網分配的ip地址,若是serve服務啓動在這些ip地址的某一個端口下,就用這個全部能訪問的ip加上端口號訪問到,

文章借鑑處:

blog.csdn.net/liyi1009365… 感謝大佬解惑,特此記錄筆記

相關文章
相關標籤/搜索