1. 程式人生 > >公網Ip和私網ip

公網Ip和私網ip

  IP可以分為Public IP 和 Private IP,出現這種規劃的原因在於IPv4所能表示的IP太少而電腦太多以至於不夠用,然而只有Public IP才能直接連線上網路,所以對於那些公司,學校,政府機構等場所,就可以集中使用私有的IP進行管理,而大家可以共用一個IP去連線上公網,這樣,就省下了許多寶貴的Public IP。你有沒有發現,你每次使用ipconfig查到的地址,要麼就是172.開頭的,要麼就是192.開頭的,為什麼?難道沒有其他開頭的嘛,答:基本沒有。因為一個Ip分給我們一個Pc端太不划算了,一般都是很多人共享一個ip,我們用ipconfig查詢到的其實只是我們的區域網Ip,172.開頭的意味著我們是B型別的區域網,以192.開頭的意味著你是c類的區域網。所以我們一直都沒有接觸到正真的ip,我們一直打交道的都是私有ip又叫private ip.

  ipconfig查出來的是你本機的IP地址,也就是內網私有地址,此類地址僅在區域網使用,不能聯通外網。百度查出來的地址是你上網的共有地址,也許並不是你主機的地址,而是電信或聯通分給你的地址,用於連線網際網路。

  • Public IP : 公共 IP ,經由 INTERNIC 所統一規劃的 IP,有這種 IP 才可以連上 Internet ;
  • Private IP : 私有 IP 或保留 IP,不能直接連上 Internet 的 IP ,主要用於區域網絡內的主機聯機規劃。

  早在 IPv4 規劃的時候就擔心 IP 會有不足的情況,而且為了應付某些企業內部的網路設定,於是就有了私有IP (Private IP) 的產生了。私有 IP 也分別在 A, B, C 三個 Class 當中各保留一段作為私有 IP 網段,那就是:

  • Class A:10.0.0.0    - 10.255.255.255
  • Class B:172.16.0.0  - 172.31.255.255
  • Class C:192.168.0.0 - 192.168.255.255

  由於這三段 Class 的 IP 是預留使用的,所以並不能直接作為Internet 上面的連線之用,不然的話,到處就都有相同的IP 囉!那怎麼行!網路豈不混亂?所以囉,這三個 IP 網段就只做為內部私有網域的IP 溝通之用。一般說來,我們用Ipcofig是無法查到公網ip的,大多數時候,你使用ipconfig查到的一般就只是以172.開頭的b類私有Ip,或者以192.168開頭的c類私有Ip.簡單的說,s私有ip有底下的幾個限制:

  • 私有 IP 的路由資訊不能對外散播 (只能存在內部網路);
  • 使用私有 IP 作為來源或目的地址的封包,不能透過 Internet 來轉送 (不然網路會混亂);
  • 關於私有 IP 的參考紀錄(如 DNS),只能限於內部網路使用 (一樣的原理啦)

  這個私有 IP 有什麼好處呢?由於他的私有路由不能對外直接提供資訊,所以,你的內部網路將不會直接被 Internet 上面的 Cracker 所攻擊!但是,你也就無法以私有 IP 來『直接上網』囉!因此相當適合一些尚未具有Public IP 的企業內部用來規劃其網路之設定!否則當你隨便指定一些可能是Public IP 的網段來規劃你企業內部的網路設定時,萬一哪一天真的連上Internet 了,那麼豈不是可能會造成跟 Internet 上面的 Public IP 相同了嗎?
  只有公網ip是能夠連線網際網路的,私網IP 一般只用作區域網

  

類別 IP範圍 私有地址範圍 保留地址
A 1.0.0.0~126.255.255.255 10.0.0.0~10.255.255.255 127.0.0.0~127.255.255.255
B 128.0.0.0~191.255.255.255 172.16.0.0~172.31.255.255 169.254.0.0~169.254.255.255
C 192.0.0.0~223.255.255.255 192.168.0.0~192.168.255.255

  我們能夠上網靠的是isp組織分給我們的Ip地址,但是這個ip地址一般不是給個人的,一般都是給一個單位,一個區域的,也就是說我們實際上能接觸到的一般都是私有地址,即我們用ipconig查到的都是私有地址,也就相當於區域網內的ip地址,當我們真正聯網時,會先把資料傳送到路由,然後再由路由進行處理實現真正的聯網操作,路由的地址才是真正聯網的Ip地址,也就是pubilc ip,而我們在自己電腦上查到的都是私有ip

  舉個例子,我們在學校或者查到的Ip一般都是172.開頭的,比如上圖我的地址,那就是在學校裡檢測到的ip地址,通常是b類地址,而我們在家裡一般用的都是c類地址。也就是一般是192.168開頭的地址。這個大家可以自行去驗證一下。

上網流程:

  移動公司分給我們的ip是117.158.134.217,這是我們這一棟樓能連上網的公網Ip,那麼如何讓這一個ip使學校裡面的所有人都能使用呢,我們開始重新劃分區域網。上文中,我們知B類私有地址範圍是:172.16.0.0~172.31.255.255,我們學校採取的就是這種劃分方法,所以我的私網ip地址就是172.18.251.129.那麼怎麼連上網的呢,我們通過私網ip然後把我們的需求和要傳送的資料發給路由器,然後路由器對接網路,再把資料傳送給Internet.然後internet傳送資料到我們學校的路由,然後路由在通過我的私網ip傳送給我,這就是我們真實上網的流程。

  

遺留問題:

   大家可能也注意到了一個問題,就是我們在百度查到的ip是117開頭的,也就是說其實是a類,但是我們這邊私網Ip卻是172開頭的,是b類的私有ip地址,那麼問題來了?117開頭的IP地址是如何轉換成172開頭的私有ip的呢?他們之間一定有一個轉換關係,構成了一個公網和私網之間的一個對映。這個關係是什麼呢???

  

  在查閱了多方資料之後,這個問題其實就是私網Ip和公網Ip的轉換這個問題,其實利用到了nat轉換技術,將172.16.xxx.xxx~172.31.xxx.xxx轉換到公網ip,也就是我圖中所示的那個鄭州的117開頭的ip。我們的私網ip是自成體系的,在合理的建設完私網ip後,我們只需利用nat技術將公網ip和私網ip做一個轉換即可。大概就跟下圖所示一樣,二樓使用的是172.16.xx.xx開頭的網址,三樓是172.17.xx.xx,四樓是172.18.xx.xx,從圖中可以有一個很清晰地認識

  

   隨著學校換地方,我們的Ip也發生了一些微妙的變化。我們搬到了一個新的環境,還沒搭建起伺服器。當我使用Ipconfig命令來查詢自己的ip地址的時候,我們發現了一個奇怪的事情,我們獲取到的ip地址是一個以169開頭的ip地址,上文已經提到過我們正常情況下獲到的地址應該是一個以172.16~172.31這之間開頭的,那麼為什麼會出現169開頭的呢?

   169開頭的是一個保留地址,是本地連線受限時系統自動分配的ip沒有什麼實際的意義,出現這種情況可能是伺服器還沒搭建好。果然,等我們重新搭建好了代理伺服器之後,我們的網址又變回了現在的172.18開頭的網址。