搭建外網能訪問的web伺服器
內網搭建web伺服器
用Go寫了一個網盤,之前一直是在區域網內除錯,真正使用起來肯定還是需要能外網訪問的。所以,就想著搞一個外網能訪問的web伺服器。
之前有了解過如何讓外網訪問區域網的主機,這樣除錯什麼的都比較方便。當然也可以租個阿里雲伺服器,把網盤掛上去,這樣最簡單,看了一下,租個伺服器一個月要花好幾十,最後決定自己搭伺服器。申請公網IP或者用花生殼的內網穿透服務應該可以搞定。
記錄一下整個流程:
1. 申請公網IP
2. 埠對映
3. 申請域名
一、申請公網IP
這個比較簡單,直接打運營商客服就行了。我用的電信,直接10000號讓客服給開通公網IP就好了。然後通過光貓的設定介面能查到WAN 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伺服器,這樣應該就可以實現區域網內的域名解析了。