天天看點

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

作者:cpolar極點雲

1.前言

Python作為熱度比較高的程式設計語言,其文法簡單且語句清晰,而且python有良好的相容性,可以輕松的和其他程式設計語言((比如C/C++))建立的子產品連接配接起來,而且python豐富強大的庫,經過封裝可以輕松調用,是以深受歡迎。

今天我們就嘗試用python,建立一個簡單的http伺服器,用來展示本地電腦上指定的目錄和檔案。

2.本地http伺服器搭建

一般來說,Python的簡單http伺服器不依賴Apache、IIS等這些複雜的伺服器程式,因為其自帶了隻需一行指令就能建立http服務。但相對的,這個簡單http服務也沒法提供複雜功能,隻能提供相對簡單的目錄服務。但對于想要學習和熟悉python,這又是必須進行的一步。

2.1.Python的安裝和設定

首先,我們需要在本地安裝python程式。Python程式可以在其官網(www.python.org/)找到對應作業系統版本下載下傳。筆者使用的是Windows作業系統,是以選擇Windows版本下載下傳。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

Python下載下傳完成後,直接點選安裝程式.exe即可進行安裝。同時需要注意的是,在安裝過程中,需要注意勾選Add python.exe to PATH選項。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

完成python程式的安裝後,我們就可以着手建立python的http伺服器了

2.2.Python伺服器設定和測試

由于python内建了簡單http服務包,是以對于python來說,隻需輸入一行指令,就能輕松打開http服務。當然,要運作網頁,就需要網頁有顯示内容。是以我們可以先建立一個用于存放網頁檔案的檔案夾。例如筆者在本地電腦的E盤下建立了一個“test”檔案夾

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

接着,以管理者身份運作本地電腦的指令提示符界面,并輸入指令轉入該檔案所存放的硬碟

e:           

再轉入打算共享的檔案夾

cd test           
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

接着輸入指令啟動http服務

  • 如果Python版本為2.x,輸入指令
python -m SimpleHTTPServer 8081           
  • 如果Python版本為3.x,輸入指令
python -m http.server 8001           

其中的8081為打算搭建的伺服器的輸出端口,隻要選擇沒有被占用的端口即可。如果出現防火牆的提示資訊,隻要選擇“允許通路”即可。

指令行輸入完畢後,python給出回報Serving HTTP on 0.0.0.0 port 8081 ...,就說明我們python的http服務已經成功開啟了,在本地8081端口下。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

接着我們在本地電腦上的浏覽器位址欄中,輸入localhost:8081,就能打開打算分享的檔案夾下的檔案。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

能看到這些内容,就說明本地電腦上python的http服務已經開啟,并且已經可以查閱到這個檔案夾下的檔案。同樣的,如果我們在這個檔案夾下放入網頁檔案,也能夠顯示為網頁。

此時在同一區域網路下的裝置,隻要在浏覽器中輸入本地電腦的ip位址+端口号(具體格式為192.168.XXX.XXX:端口号),就能顯示出python的網頁。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

不過,不能在公共網際網路通路的網頁總覺得缺少靈魂,是以我們可以借助cpolar内網穿透,建立一條内網穿透資料隧道,讓我們可以在公共網際網路條件下,通路到python。

3.cpolar的安裝和注冊

同樣的,我們可以在cpolar的官網(https://www.cpolar.com/)找到對應作業系統版本的軟體,筆者這裡也是選擇Windows版本。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

Cpolar軟體下載下傳完成後,将壓縮包解壓,并輕按兩下其中的.msi檔案,即可自動進行安裝,我們隻要一路點選Next即可。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

由于cpolar會為每個使用者建立獨立的資料隧道,并輔以使用者密碼和token碼保證資料安全,是以我們在使用cpolar之前,需要進行使用者注冊。注冊過程也非常簡單,隻要在cpolar首頁右上角點選使用者注冊,在注冊頁面填入必要資訊,就能完成注冊。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

3.1 Cpolar雲端設定

完成cpolar的安裝和注冊後,我們就可以着手使用cpolar,建立一條内網穿透資料隧道,将本地電腦的python網頁與公共網際網路連接配接起來。需要注意的是,cpolar免費版的資料隧道每24小時重置一次。筆者并不想每天進行重置資料隧道設定,是以将cpolar更新至vip版,以便能獲得能長期穩定存在的内網穿透資料隧道。

要生成長期穩定存在的内網穿透資料隧道,我們要先通路cpolar官網并登入,并在“儀表盤”頁面左側,找到并點選預留按鈕,進入“預留”頁面。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

在“預留”頁面中,我們可以看到cpolar提供了多種協定的資料隧道保留項目。而python伺服器是http協定,是以我們找到保留二級子域名欄位。當然,如果已經向域名供應商購買了自己的域名的,也可以選擇“保留自定義域名”欄位。

在“保留二級子域名”欄位,我們需要對打算保留的二級子域名進行資訊設定,而這些設定的資訊,也會成為我們在公共網際網路通路本地python伺服器的隧道入口(公共網際網路位址的一部分)。具體需要設定的資訊為:

地區:伺服器所在區域,就近選擇即可二級域名會最終出現在生成的公共網際網路位址中,作為網絡位址的辨別之一描述可以看做這條資料隧道的描述,能夠與其他隧道區分開即可

輸入這幾項設定後,就可以點選右側的保留按鈕,将這條資料隧道保留下來。如果我們不想要這條隧道的入口了,也可以點選右側的“x”,輕松将隧道删除

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

3.2 Cpolar本地設定

完成cpolar雲端設定後,我們回到本地電腦上,打開并登入cpolar用戶端(可以在浏覽器中輸入localhost:9200直接通路,也可以在開始菜單中點選cpolar用戶端的快捷方式)。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

點選用戶端主界面左側隧道管理——建立隧道按鈕,進入本地隧道建立頁面(如果要建立每24小時重置位址的臨時資料隧道,可直接在此進行設定,不必再cpolar官網設定空白資料隧道)。

在這個頁面,同樣需要進行幾項資訊設定,這些資訊設定包括:

隧道名稱——可以看做cpolar本地的隧道資訊注釋,隻要友善我們分辨即可;協定——tomcat輸出的是web網頁,是以選擇http協定;本地位址——本地位址即為本地網站的輸出端口号,我們之前設定了8081為輸出端口,是以這裡也填入8081;域名類型——在這個例子中,我們已經在cpolar雲端預留了二級子域名的資料隧道,是以勾選“二級子域名”(如果預留的是自定義域名,則勾選自定義域名),并在下一行“Sub Domain”欄中填入預留的二級子域名,這裡我們填入“pythonweb”(如果隻是建立臨時資料隧道,則直接勾選“随機域名”,由cpolar用戶端自行生成網絡位址);地區——與cpolar雲端設定時一樣,我們依照實際所在地就近填寫;
【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

完成這些設定後,就可以點選頁面下方的建立按鈕,将本地python伺服器網頁與cpolar雲端保留的二級子域名連結起來,生成一條完整的内網穿透資料隧道。

隧道建立完成後,cpolar會自動跳轉至隧道管理——隧道清單頁面,在這個頁面看到資料隧道的狀态(是否暢通),或是控制隧道的開啟、關閉或删除。如果需要對隧道的資訊進行變更,也可以通過這裡的“編輯”按鈕進行

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

4.公網通路測試

資料隧道建立完成後,我們可以點選cpolar用戶端左側狀态——線上隧道清單。找到能夠通路本地python伺服器頁面的公共網際網路位址。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

隻要将這個位址輸入浏覽器位址,就能輕松通路到本地電腦上的python伺服器頁面。

【Python】快速簡單搭建HTTP伺服器并公網通路「cpolar内網穿透」

5.結語

至此,我們成功的使用python建立一個簡單的伺服器頁面,并且通過cpolar為其建立了一條能夠穿透内網屏障的資料隧道,将這個python網頁釋出到公共網際網路上。其實,隻要知道網頁(或軟體)的輸出端口号,我們都可以使用cpolar穿透内網,讓我們在公共網際網路上通路到本地的網頁(或軟體)。