使用Python搭建服務器公網展示本地電腦文件的操作過程
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/)找到對應操作系統(tǒng)版本下載。筆者使用的是Windows操作系統(tǒng),因此選擇Windows版本下載。


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


完成python程序的安裝后,我們就可以著手建立python的http服務器了
2.2.Python服務器設置和測試
由于python內建了簡單http服務包,因此對于python來說,只需輸入一行命令,就能輕松打開http服務。當然,要運行網頁,就需要網頁有顯示內容。因此我們可以先建立一個用于存放網頁文件的文件夾。例如筆者在本地電腦的E盤下新建了一個“test”文件夾

接著,以管理員身份運行本地電腦的 命令提示符 界面,并輸入命令轉入該文件所存放的硬盤
e:
再轉入打算共享的文件夾
cd test


接著輸入命令 啟動http服務
如果Python版本為2.x,輸入命令
python -m SimpleHTTPServer 8081
如果Python版本為3.x,輸入命令
python -m http.server 8001
其中的8081為打算搭建的服務器的輸出端口,只要選擇沒有被占用的端口即可。如果出現(xiàn)防火墻的提示信息,只要選擇 允許訪問 即可。
命令行輸入完畢后,python給出反饋 Serving HTTP on 0.0.0.0 port 8081 ... ,就說明我們python的http服務已經成功開啟了,在本地8081端口下。

接著我們在本地電腦上的瀏覽器地址欄中,輸入 localhost:8081 ,就能打開打算分享的文件夾下的文件。

能看到這些內容,就說明本地電腦上python的http服務已經開啟,并且已經可以查閱到這個文件夾下的文件。同樣的,如果我們在這個文件夾下放入網頁文件,也能夠顯示為網頁。
此時在同一局域網下的設備,只要在瀏覽器中輸入本地電腦的ip地址+端口號(具體格式為192.168.XXX.XXX:端口號),就能顯示出python的網頁。

不過,不能在公共互聯(lián)網訪問的網頁總覺得缺少靈魂,因此我們可以借助cpolar內網穿透,創(chuàng)建一條內網穿透數(shù)據(jù)隧道,讓我們可以在公共互聯(lián)網條件下,訪問到python。
3.cpolar的安裝和注冊
同樣的,我們可以在cpolar的官網(https://www.cpolar.com/)找到對應操作系統(tǒng)版本的軟件,筆者這里也是選擇Windows版本。


Cpolar軟件下載完成后,將壓縮包解壓,并雙擊其中的 .msi文件 ,即可自動進行安裝,我們只要一路點擊 Next 即可。


由于cpolar會為每個用戶創(chuàng)建獨立的數(shù)據(jù)隧道,并輔以用戶密碼和token碼保證數(shù)據(jù)安全,因此我們在使用cpolar之前,需要進行用戶注冊。注冊過程也非常簡單,只要在cpolar主頁右上角點擊 用戶注冊 ,在注冊頁面填入必要信息,就能完成注冊。


3.1 Cpolar云端設置
完成cpolar的安裝和注冊后,我們就可以著手使用cpolar,創(chuàng)建一條內網穿透數(shù)據(jù)隧道,將本地電腦的python網頁與公共互聯(lián)網連接起來。需要注意的是,cpolar免費版的數(shù)據(jù)隧道每24小時重置一次。筆者并不想每天進行重置數(shù)據(jù)隧道設置,因此將cpolar升級至vip版,以便能獲得能長期穩(wěn)定存在的內網穿透數(shù)據(jù)隧道。
要生成長期穩(wěn)定存在的內網穿透數(shù)據(jù)隧道,我們要先訪問cpolar官網并登錄,并在“儀表盤”頁面左側,找到并點擊 預留 按鈕,進入“預留”頁面。


在“預留”頁面中,我們可以看到cpolar提供了多種協(xié)議的數(shù)據(jù)隧道保留項目。而python服務器是http協(xié)議,因此我們找到 保留二級子域名 欄位。當然,如果已經向域名供應商購買了自己的域名的,也可以選擇“保留自定義域名”欄位。
在“保留二級子域名”欄位,我們需要對打算保留的二級子域名進行信息設置,而這些設置的信息,也會成為我們在公共互聯(lián)網訪問本地python服務器的隧道入口(公共互聯(lián)網地址的一部分)。具體需要設置的信息為:
地區(qū) :服務器所在區(qū)域,就近選擇即可
二級域名 會最終出現(xiàn)在生成的公共互聯(lián)網地址中,作為網絡地址的標識之一
描述 可以看做這條數(shù)據(jù)隧道的描述,能夠與其他隧道區(qū)分開即可
輸入這幾項設置后,就可以點擊右側的 保留 按鈕,將這條數(shù)據(jù)隧道保留下來。如果我們不想要這條隧道的入口了,也可以點擊右側的“x”,輕松將隧道刪除

3.2 Cpolar本地設置
完成cpolar云端設置后,我們回到本地電腦上,打開并登錄cpolar客戶端(可以在瀏覽器中輸入localhost:9200直接訪問,也可以在開始菜單中點擊cpolar客戶端的快捷方式)。

點擊客戶端主界面左側 隧道管理 —— 創(chuàng)建隧道 按鈕,進入本地隧道創(chuàng)建頁面(如果要創(chuàng)建每24小時重置地址的臨時數(shù)據(jù)隧道,可直接在此進行設置,不必再cpolar官網設置空白數(shù)據(jù)隧道)。
在這個頁面,同樣需要進行幾項信息設置,這些信息設置包括:
隧道名稱 ——可以看做cpolar本地的隧道信息注釋,只要方便我們分辨即可;
協(xié)議 ——tomcat輸出的是web網頁,因此選擇http協(xié)議;
本地地址 ——本地地址即為本地網站的輸出端口號,我們之前設置了8081為輸出端口,因此這里也填入8081;
域名類型 ——在這個例子中,我們已經在cpolar云端預留了二級子域名的數(shù)據(jù)隧道,因此勾選“二級子域名”(如果預留的是自定義域名,則勾選自定義域名),并在下一行“Sub Domain”欄中填入預留的二級子域名,這里我們填入“pythonweb”(如果只是創(chuàng)建臨時數(shù)據(jù)隧道,則直接勾選“隨機域名”,由cpolar客戶端自行生成網絡地址);
地區(qū) ——與cpolar云端設置時一樣,我們依照實際所在地就近填寫;

完成這些設置后,就可以點擊頁面下方的 創(chuàng)建 按鈕,將本地python服務器網頁與cpolar云端保留的二級子域名連結起來,生成一條完整的內網穿透數(shù)據(jù)隧道。
隧道創(chuàng)建完成后,cpolar會自動跳轉至 隧道管理 —— 隧道列表 頁面,在這個頁面看到數(shù)據(jù)隧道的狀態(tài)(是否暢通),或是控制隧道的開啟、關閉或刪除。如果需要對隧道的信息進行變更,也可以通過這里的“編輯”按鈕進行

4.公網訪問測試
數(shù)據(jù)隧道建立完成后,我們可以點擊cpolar客戶端左側 狀態(tài) —— 在線隧道列表 。找到能夠訪問本地python服務器頁面的公共互聯(lián)網地址。

只要將這個地址輸入瀏覽器地址,就能輕松訪問到本地電腦上的python服務器頁面。

5.結語
至此,我們成功的使用python建立一個簡單的服務器頁面,并且通過cpolar為其創(chuàng)建了一條能夠穿透內網屏障的數(shù)據(jù)隧道,將這個python網頁發(fā)布到公共互聯(lián)網上。其實,只要知道網頁(或軟件)的輸出端口號,我們都可以使用cpolar穿透內網,讓我們在公共互聯(lián)網上訪問到本地的網頁(或軟件)。
到此這篇關于使用Python搭建服務器公網展示本地電腦文件的文章就介紹到這了,更多相關Python搭建服務器公網展示本地電腦文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python及pycharm的安裝與環(huán)境配置的過程(附詳細圖文)
PyCharm環(huán)境配置的核心在于正確選擇安裝版本、合理配置解釋器及優(yōu)化開發(fā)界面,這篇文章主要介紹了python及pycharm的安裝與環(huán)境配置的相關資料,文中給出了詳細的圖文,需要的朋友可以參考下2026-04-04
Python使用poplib模塊和smtplib模塊收發(fā)電子郵件的教程
smtplib模塊一般我們比較熟悉、這里我們會來講解使用smtplib發(fā)送SSL/TLS安全郵件的方法,而poplib模塊則負責處理接收pop3協(xié)議的郵件,下面我們就來看Python使用poplib模塊和smtplib模塊收發(fā)電子郵件的教程2016-07-07
Python簡單格式化時間的方法【strftime函數(shù)】
這篇文章主要介紹了Python簡單格式化時間的方法,結合實例形式分析了Python使用strftime函數(shù)進行時間格式化的操作技巧,需要的朋友可以參考下2016-09-09
Python不使用int()函數(shù)把字符串轉換為數(shù)字的方法
今天小編就為大家分享一篇Python不使用int()函數(shù)把字符串轉換為數(shù)字的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07

