1. 程式人生 > >AIROBOT系統 之 網路配置

AIROBOT系統 之 網路配置

需求背景

在上一個章節我們講究了私有云的部署,但是會有一個問題,我如果在外面,如何訪問家裡電腦上部署的私有云服務?其實這個問題在擴大化說 就是 如何可以在家庭網路以外 可以訪問到 家庭網路:公網 訪問 內網。

內網轉外網

顧名思義:就是想辦法把自己的內網機器 可以直接 讓外網可以訪問。由於我們網際網路技術不是我們國家發明的,在加入網際網路之後我們分配到的公網IP也不多,不像美國人口少IP還多,基本每家都有公網IP(好羨慕)。


在我們國家需要公網IP必須要購買伺服器或者家裡安裝電信網路。而我家的情況按照了電信公司提供的網路服務有一個 不固定的公網IP。我們的文章我主要解釋我家裡的網路情況。後面會介紹幾種非網路服務商提供的公網IP的方式。

電信網路公網IP

600


600


如上圖,通過ip138可以查詢到,我的出口IP是上圖。切記非電信供應商截圖的IP不一定是通過你家,可能是通過多種路由裝置轉入到你家,這種就不行的。可以看到電信貓的管理介面IP和 ip138查詢的一樣,就說明我家的IP是公網IP


600


如上圖,我家裡的網路是 電信提供的貓 接入了一個 TP-LINK。家裡的所有上網裝置都是接入 TP-LINK進行上網。


網路請求轉發

600


最上面是TP-LINK的管理介面,下面是電信貓的管理介面。我會設定所有從 外網請求 的所有流量都轉發到 TP-LINK這個裝置。

我舉個例子,假如我的公網IP是 a.b.c.d。你通過任何方式的TCP和UDP協議 訪問這個IP的任何埠資料包,都會轉發到 TP-LINK這個路由裝置。


為什麼要設定這個東西?


因為我們的私有云電腦是屬於TP-LINK 區域網的。如果我們想要通過訪問公網IP或者域名 可以訪問到這個服務,就必須進行 資料包轉發。需要從電信貓轉發到TP-LINK,然後TP-LINK在轉發到對應的私有云電腦上就可以了。


600


如上圖,最上面的截圖是nextcloud需要一個網址,可以看到我的網址是 http://xxx.home.54php.cn。   可以看到我將 home.54php.cn(54php.cn是我個人註冊的) 所有子域名都解析到了我的公網ip上了(這裡有個問題,就是電信的IP有時候會變的,如何解決這個問題會講解的)


600


我們可以想象一下,通過訪問

http://xxx.home.54php.cn:10000  也就是 a.b.c.d 這個公網IP的 10000埠。首先 a.b.c.d 所有的請求都會轉發到TP-LINK,然後TP-LINK管理介面有 虛擬伺服器的功能【上面有截圖】,可以看到通過TP-LINK 按照埠 將請求再次轉發到對應機器。只要請求到了具體伺服器上了指定埠(例如80),那就是伺服器上的各種服務配合的事情了。例如通過nginx做web伺服器轉發到對應服務,例如php,python等等。


通過如上的操作 我就可以通過一個域名(其實也是IP,因為域名解析要做的事情就是找到對應的IP,也就是DNS服務的功能)。不知道是否給大家講解清楚了,如果大家還有不明白的可以直接加入我們技術交流群進行交流【QQ群:325264502】。這塊大家弄清楚了就非常容易理解了。就是多個區域網相互轉發資料包。


為什麼不能80或者443 預設埠?


因為電信公司非正規在電信公司備案企業或者個人,是不會開啟預設服務埠,例如80,443,22等


公網IP經常變怎麼辦?

其實這也是為什麼不用IP直接訪問的原因,因為我的域名是不會變的,如果IP變了,我只需要通過一個方式將域名和IP的對應關係更新下就可以了。接下來就是DDNS登場了。我們經常聽說DNS,前面在加上一個D是什麼玩意。這裡多的一個D是動態的意思。一般我們理解的一個域名和IP的對應關係是定死的。DDNS就是在自己知道自己的IP變了之後可以去更新域名的解析IP地址的。


600


大家可以看到我的*.home.54php.cn 全部到解析到家裡了。為了達到我們的目的我們要使用一個能夠提供ddns服務的dns服務商。我這裡選擇的是 DNSPOD。


目前在github上有人提供指令碼:https://github.com/apanly/ArDNSPod。大致原理 就是 通過類似ip138這類網站獲取目前自己的外網ip,然後在獲取域名解析的IP,如果兩個IP不一樣通過呼叫DNSPOD提供的介面更改域名繫結IP。


600


非電信網路獲得公網IP

原理其實和電信網路差不多,只是不同於電信服務商提供的公網IP,而是其他人提供了一個公網IP,然後通過別人家的公網IP服務轉發到 我們內網機器上。或者你可以理解 有一個人按照了電信網路然後通個了一種技術手段 可以讓我們訪問一個他們指定的域名 然後 可以轉發到自己內網的機器上。


這種內網轉外網的服務其實非常多,例如經常聽到的花生殼,Ngrok,NAT。我記得我部落格就有講解過:Ngrok NatApp 微信本地化除錯利器


如何獲得這樣的公網IP。你可以去任何伺服器供應商購買伺服器 就會獲取一個免費或者付費的IP。例如我的 部落格 就是在騰訊雲購買的(為什麼買騰訊雲,因為當時做活動便宜,所以不要爭論為什麼不用阿里雲,網易雲等等)。然後在自己伺服器上搭建各種內網轉外網的服務端服務。


如果是購買伺服器搭建內網轉外網的服務,這種比較考驗大家的功底,需要掌握的知識相對要求較高。


如果是別人搭建好了內網轉外網的服務,你只需要搭建別人指定好的客戶端軟體進行設定就可以了。


如果是別人搭建好的,一般這種網站都會要求註冊會員,然後進行一定免費 + 付費的方式給大家提供服務,並且這種一般有種缺點,只能有一個域名。不像我個人電信IP 可以繫結多個域名,多個埠,支援多種服務。但是好處是 可以是 80埠。


個人推薦如果只是玩玩 可以在網上找一些別人提供好的服務來體驗下就可以了。可以搜尋引擎搜尋關鍵詞:內網轉外網 。


如果大家擔心被騙,可以加入我們的QQ群,幾個人合夥買個伺服器(可以按月按年),搭建一個內網轉外網的服務。到時候我可以技術支援。

參考資料



原文地址: AIROBOT系統 之 網路配置
標籤: airobot    網路    ngrok    frp    花生殼   

智慧推薦