1. 程式人生 > 實用技巧 >搭建外網能訪問的web伺服器

搭建外網能訪問的web伺服器

內網搭建web伺服器

用Go寫了一個網盤,之前一直是在區域網內除錯,真正使用起來肯定還是需要能外網訪問的。所以,就想著搞一個外網能訪問的web伺服器。

之前有了解過如何讓外網訪問區域網的主機,這樣除錯什麼的都比較方便。當然也可以租個阿里雲伺服器,把網盤掛上去,這樣最簡單,看了一下,租個伺服器一個月要花好幾十,最後決定自己搭伺服器。申請公網IP或者用花生殼的內網穿透服務應該可以搞定。

記錄一下整個流程:

1. 申請公網IP

2. 埠對映

3. 申請域名

一、申請公網IP

這個比較簡單,直接打運營商客服就行了。我用的電信,直接10000號讓客服給開通公網IP就好了。然後通過光貓的設定介面能查到WAN IP,這個IP如果和百度搜索本機IP

的結果一樣的話,說明已經開通公網IP了。但是公網IP不是固定的,在重啟光貓後,運營商分配的IP會改變。這裡會導致域名解析後,IP地址已經更換了,後面需要設定動態域名解析配置好像是可以解決這個問題的。
在這裡插入圖片描述
在這裡插入圖片描述

二、 埠對映

光貓擁有公網IP後,接入到光貓的裝置,會被路由設定為區域網IP,這時,外網是沒有辦法訪問到這些被分配區域網IP的裝置的。可以通過將光貓配置橋接模式,然後通過撥號來實現外網裝置訪問內網裝置。或者是通過埠對映或者是DMZ來配置。這裡我嘗試了光貓改橋接模糊,這時需要光貓的超級管理員賬戶登陸,通過網上的方法破解了超級管理員的密碼,然後登陸進去了,改橋接模式需要撥號賬戶,也就是寬頻賬戶,這個可以通過中國電信官網查詢到的。但是我沒有這樣做,因為事前沒有準備這個賬戶,修改後,沒辦法撥號上網。最後嘗試了埠對映。這裡外部埠應該要大於5000。一般這個設定不是叫埠對映就是腳虛擬主機服務。

找到一篇講解的很詳細的關於埠對映的文章。

在這裡插入圖片描述

這裡又一個疑問,在我對映好後,不知道為什麼從外網Ping不同這個主機。不知道是不是因為埠號的原因。嘗試把內部埠號改為ssh的預設埠號,ssh服務也登陸不上。

DMZ是和埠對映類似的服務。只是相當於把內部埠和外部埠全部對映。這樣就不用一個埠一個埠的配置了。目前沒有嘗試。

這裡我執行我的網盤程式netdisk,然後通過另外一個外網裝置(網路是通過聯通卡手機開的熱點)在位址列輸入http://公網IP:外部埠/login,發現已經能訪問我的netdisk服務了。說明對映是成功的。只是好奇為什麼Ping不通。

在這裡插入圖片描述

三、申請域名

域名我是通過阿里雲萬網申請的,花了點錢,然後設定域名解析,將這個域名和我的公網IP繫結(這裡域名服務商平臺有提供這個設定的)。這樣訪問這個域名就能跳轉到我的公網IP下埠對映的伺服器了。因為這個公網IP在光貓重啟後會改變,所以肯定還是要想辦法解決。網上給的教程是動態域名解析,目前還沒有解決。

在這裡插入圖片描述

之後,通過位址列輸入sault.top:外部埠/login,也訪問到了我的netdisk服務。

在這裡插入圖片描述

另外的問題就是,如果是兩臺裝置在一個區域網中,通過公網IP和域名,都是沒有辦法訪問到我的網盤服務的。網上說的是通過DMZ服務實現所有埠的對映就可以了。目前還沒嘗試。如果要是可以在區域網內進行域名解析的話,這樣偵錯程式來也會方便很多的。可以自己配合各DNS伺服器,然後將這臺DNS伺服器作為區域網內的DNS伺服器,這樣應該就可以實現區域網內的域名解析了。