如何外網訪問內網伺服器
假如你剛寫完一個內部測試Web站點,對於新功能希望展示給客戶看一下,而客戶又在公網時,而你在內網(未部署)時,就會產生這個問題。
如果客戶不在同一個區域網內(通常不在),你就沒辦法展示給他看了。這時,只好將新站點上傳到公網伺服器部署,或者截圖給人家看效果了。
如果又遇到客戶的修改反饋意見的話,又要反覆以上步驟,可能5-6遍之多,這樣十分的低效。 要知道,開發人員的時間非常寶貴,儘量不要浪費在低效率事情上。
這時候,就可以介紹今天的主角了,cpolar內網穿透利器。它可以把內網的站點變成公網上可以訪問的站點。一條命令就可以搞定。不論你在何處,使用者在何處,一鍵上公網,非常的方便。
接下來,我們就實戰操作一下。
前期準備
- 註冊一個cpolar帳號 (必要)
- 下載cpolar客戶端(必要)
- 準備一個Web測試網站程式包(可選)
它用來模擬在本機跑著的測試Web站點
註冊cpolar帳號
去 www.cpolar.com 官網註冊一個帳號
註冊成功後,會自動登入到使用者後臺介面
下載cpolar客戶端
下載地址:https://www.cpolar.com/download/
根據自己的本機作業系統,下載指定的客戶端,後臺介面裡列出了9種不同平臺的客戶端可供下載,包括WINDOWS、Linux、MAC、還有ARM平臺(這說明樹莓派也有機會,^^)。
下載客戶端到本地後,解壓縮,解壓後得到一個cpolar的命令列客戶端。
在Linux或OSX上,您可以使用以下命令從終端解壓縮cpolar。 在Windows上,只需雙擊cpolar.zip即可。
$ unzip /path/to/cpolar.zip
配置客戶端token認證令牌
複製你後臺的認證串命令,然後在本機的命令列視窗執行。(注意authtoken串的完整)
$ ./cpolar authtoken <自己的authtoken字串>
它執行完後,並沒有真正訪問伺服器端認證,而是儲存了authtoken串到預設建立的配置檔案中。
預設配置檔案路徑:在你當前使用者目錄下.cpolar\cpolar.yml,以後你可以增加配置項,讓你更加方便的除錯,現在不用管。
執行cpolar客戶端,模擬連線本機的8080埠。
$ ./cpolar http 8080
這時候我們還沒有啟動內網Web站點,所以8080埠上沒有任何東西,執行它的目的是測試一下cpolar客戶端連線伺服器認證是否正常。連線後,可以看到命令列的連線狀態,如果是online狀態,則為正常。如果是其它狀態,例如:reconnect,則可能是認證串填寫不對,請重新檢查執行第7步。
上圖可以看到Tunnel status顯示online,就是正常連線,cpolar伺服器會分配一個隨機域名。可以http訪問,也可以https訪問。
正常連通後,按CTRL+C結束客戶端。
下載Web示例站點
- 測試Web站點,是一個TODO List待辦清單示例站點,它的最終的效果圖:
- 根據你的作業系統平臺,下載相應的示例Web站點程式:
示例Web站點程式部署環境 | 下載地址 |
---|---|
WINDOWS | 64位 32位 |
蘋果MAC | 64位 32位 |
Linux(Debian、CentOS、Ubuntu) | 64位(Debian、CentOS、Ubuntu) 32位(Debian、CentOS、Ubuntu) |
FreeBSD | FreeBSD 64位 |
ARM (樹莓派) | Linux ARM 32位 (樹莓派) |
嵌入式 (路由器) | MIPS MIPSLE |
這個Web測試站點程式就是一個檔案,在命令列下的單一程式,簡單,直接執行就可以。
- 下載示例站點後,本地解壓縮,然後在命令列中執行。
$ ./cpolar-todo-mvc
執行後,它會預設偵聽在本地8080埠,如果您的8080埠已被其它程式佔用,可以使用命令列參加-httpAddr,修改啟動埠,命令如下:
$ ./cpolar-todo-mvc -httpAddr=:8082
執行成功後,會有如下提示。
- 開啟瀏覽器,輸入網址:http://localhost:8080,開啟測試站點
如上圖所示,說明本地內網測試站點,已經搭建成功!接下來,我們利用cpolar,將這個內部站點,釋出到公網。
連線cpolar客戶端到內網測試站點
- 在命令列輸入
$ ./cpolar http 8080
- 複製命令列視窗中的cpolar分配的域名連結到瀏覽器,本示例中的是 https://542d821a.cpolar.io,看看發生了什麼?
- 內部的站點,已經被髮布到公網,可以被訪問到了。但是作為程式設計師,好像有種錯覺,像是DNS對映在本機一樣,這是真的麼?趕緊傳送這個連結給你遠在天邊的朋友或客戶,一起來驗證一下。看看能不能訪問得到吧。讓他們告訴你,你的新內測網站做得有多棒!^ ^
總結
今天我們利用cpolar將自己的本機測試站點公佈到了公網上,而沒有使用公網伺服器部署。以後可以經常釋出站點內測版給給客戶了。
其實cpolar還有更多玩法。
例如:
1. 微信公眾號對接除錯,不需要再部署程式,這對於程式設計師來說,非常方便。
2. 遠端家裡的樹莓派。
3. 私有云盤公網訪問