AIROBOT系統 之 網絡配置

需求背景

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

內網轉外網

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


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

電信網絡公網IP

600


600


如上圖,通過ip138可以查詢到,我的出口IP是上圖。切記非電信供應商截圖的IP不一定是通過你家,可能是通過多種路由設備轉入到你家,這種就不行的??梢钥吹诫娦咆埖墓芾斫缑鍵P和 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端口。


個人推薦如果只是玩玩 可以在網上找一些別人提供好的服務來體驗下就可以了??梢运阉饕嫠阉麝P鍵詞:內網轉外網 。


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

參考資料


<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>