1. 程式人生 > >如何外網訪問內網伺服器

如何外網訪問內網伺服器

假如你剛寫完一個內部測試Web站點,對於新功能希望展示給客戶看一下,而客戶又在公網時,而你在內網(未部署)時,就會產生這個問題。

如果客戶不在同一個區域網內(通常不在),你就沒辦法展示給他看了。這時,只好將新站點上傳到公網伺服器部署,或者截圖給人家看效果了。

如果又遇到客戶的修改反饋意見的話,又要反覆以上步驟,可能5-6遍之多,這樣十分的低效。 要知道,開發人員的時間非常寶貴,儘量不要浪費在低效率事情上。

這時候,就可以介紹今天的主角了,cpolar內網穿透利器。它可以把內網的站點變成公網上可以訪問的站點。一條命令就可以搞定。不論你在何處,使用者在何處,一鍵上公網,非常的方便。

接下來,我們就實戰操作一下。

前期準備

  1. 註冊一個cpolar帳號 (必要)
  2. 下載cpolar客戶端(必要)
  3. 準備一個Web測試網站程式包(可選)
    它用來模擬在本機跑著的測試Web站點

註冊cpolar帳號

  1. www.cpolar.com 官網註冊一個帳號
    在這裡插入圖片描述

  2. 註冊成功後,會自動登入到使用者後臺介面
    在這裡插入圖片描述


下載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示例站點

  1. 測試Web站點,是一個TODO List待辦清單示例站點,它的最終的效果圖:
    在這裡插入圖片描述


  1. 根據你的作業系統平臺,下載相應的示例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測試站點程式就是一個檔案,在命令列下的單一程式,簡單,直接執行就可以。

  1. 下載示例站點後,本地解壓縮,然後在命令列中執行。
$ ./cpolar-todo-mvc

執行後,它會預設偵聽在本地8080埠,如果您的8080埠已被其它程式佔用,可以使用命令列參加-httpAddr,修改啟動埠,命令如下:

$ ./cpolar-todo-mvc -httpAddr=:8082

執行成功後,會有如下提示。
在這裡插入圖片描述

  1. 開啟瀏覽器,輸入網址:http://localhost:8080,開啟測試站點
    在這裡插入圖片描述

如上圖所示,說明本地內網測試站點,已經搭建成功!接下來,我們利用cpolar,將這個內部站點,釋出到公網。

連線cpolar客戶端到內網測試站點

  1. 在命令列輸入
$ ./cpolar http 8080


在這裡插入圖片描述


  1. 複製命令列視窗中的cpolar分配的域名連結到瀏覽器,本示例中的是 https://542d821a.cpolar.io,看看發生了什麼
    在這裡插入圖片描述


  1. 內部的站點,已經被髮布到公網,可以被訪問到了。但是作為程式設計師,好像有種錯覺,像是DNS對映在本機一樣,這是真的麼?趕緊傳送這個連結給你遠在天邊的朋友或客戶,一起來驗證一下。看看能不能訪問得到吧。讓他們告訴你,你的新內測網站做得有多棒!^ ^

總結

今天我們利用cpolar將自己的本機測試站點公佈到了公網上,而沒有使用公網伺服器部署。以後可以經常釋出站點內測版給給客戶了。
其實cpolar還有更多玩法。
例如:
1. 微信公眾號對接除錯,不需要再部署程式,這對於程式設計師來說,非常方便。
2. 遠端家裡的樹莓派。
3. 私有云盤公網訪問