1. 程式人生 > >內網與外網

內網與外網

寫給不太懂網路的我們。

先從幾個名詞說起,公網IP,私網地址,區域網,內網IP,外網,IP。

電腦通過ip地址來連線網路,IP(我們常常稱為IP地址)的總量是有限的,第一批公網IP的數量就更少了,到目前為止接近枯竭。注意:每臺裝置都一個實體地址(電腦和手機),這個地址標誌著裝置的物理唯一性,每臺連入了網路的裝置都有一個IP,標誌著它在網路中的唯一性。

所以你的電腦是怎麼獲得IP的呢?

首先你要相信一個事實,你自己拉的寬頻不太可能是公網IP(它已經接近枯竭),所以你的寬頻也是內網IP,內網IP分為兩種,一種是相對固定的IP(自己家的電腦IP幾乎不會變),第二種是wifi 下的電腦,在一定的IP範圍內隨機分配IP。IP分配的手段是通過路由器和轉換器(不是必須的)轉化的。家庭的寬頻就是一個外網IP經過路由器分成多個內網IP,所以一個網線多個人家共用和一個網線供多個電腦工作是一個意思,這裡我們就不得不說網速的問題了,寬頻的規則是按需分配,資料的在網路中的傳遞一般都是多執行緒(例如三個任務,交替執行但是每個任務執行0.001s,時間短我們幾乎看不見專案的交替),所以同一個區域網下,我的網速快你的網速就很卡了,辦理寬頻的時候說的是20M/s,辦理下來就真的不一定了。

從一個公司的角度來看:一個公司是一個區域網(物理空間上的局域),裡面有數十上百臺電腦,這個電腦陣列同時上網,必定是有著不同的IP,差別僅限於192.168.10.226和192.168.10.225(只是舉一個例子),這些IP稱為內網IP,他們所組成的區域網可以堪稱是一臺電腦堡壘機,這臺堡壘機擁有著一個IP,這個IP稱為公網IP(外網IP).

從網路的角度來看,所有的能連上網路的電腦,相互之間通訊構成了網路世界,每臺電腦都有一個網路世界的名字,這個名字就是IP,或者說是外網IP(區域網的情況下這麼稱呼)。每臺電腦都可以選擇自己的命運是稱為伺服器還是客戶端。在這裡要明白:所謂伺服器就是一臺開啟了對外服務介面和埠的效能比較優越的電腦,所以原則上你手中的電腦也可以稱為伺服器。

那麼問題來了,就是為什麼我的電腦不能被外界訪問呢?

這個地方就涉及到了程式設計的知識,和內網外網的區別了,普通電腦想要昇華成伺服器必備三個條件:

1.搭建服務,並啟動服務,簡單的就是tomcat,mysql之類,redis,zookeeper,kafka ,nginx,docker,redis 等等

2.提供對外介面和埠,要知道瀏覽器之所以能訪問成功,本質是後臺做了路由。例如地址“https://mp.csdn.net/postedit”,在瀏覽器輸入後,其實程式碼中會先定位到伺服器的IP和提供該服務的埠號,例如“192.168.1.10:7070”,“/postedit”則是程式碼中的介面,該介面返回你所需要的資料,通過頁面跳轉展示出你看到的結果。

3.規則:外網IP才能被訪問到,內網IP,只能被處於同一內網的裝置訪問。

下面來說說VPN,它的兩個作用,一種是翻牆到國外網站(一切被我們國家牆掉的網站都稱為國外網站),一種是企業,學校,機關部門的VPN。說說第二種VPN,因為區域網不被外部訪問,所以很好的保護了企業內部的安全,區域網又具備一定的地理侷限性,所以一個企業的沒有分公司都是一個區域網,然而公司的內部資料只能放在一個地方,所以其他子公司想訪問就屬於跨域(區域網)訪問,VPN 一定是子母共存的,我們用的子VPN,將我們的請求打包轉換重定位到母VPN,再解析成我們的原始請求。