使用Python快速實(shí)現(xiàn)文件共享并通過內(nèi)網(wǎng)穿透技術(shù)公網(wǎng)訪問
1.前言
數(shù)據(jù)共享作為和連接作為互聯(lián)網(wǎng)的基礎(chǔ)應(yīng)用,不僅在商業(yè)和辦公場景有廣泛的應(yīng)用,對于個(gè)人用戶也有很強(qiáng)的實(shí)用意義。也正因如此,大量數(shù)據(jù)共享軟件被開發(fā)出來,云存儲的概念也被重復(fù)炒作。對于愛好折騰的筆者來說,用最簡單的工具找尋私人共享和存儲解決方案,也是件很有趣的事。今天,筆者就為大家介紹,如何使用python這樣的簡單程序語言,在自己的電腦上搭建一個(gè)共享文件服務(wù)器,并通過cpolar創(chuàng)建的數(shù)據(jù)隧道,將其變?yōu)槟茉诠不ヂ?lián)網(wǎng)上訪問的私人云盤。
2.本地文件服務(wù)器搭建
Python作為一個(gè)相對簡單的計(jì)算機(jī)語言,在世界范圍內(nèi)都很受歡迎,更是成為計(jì)算機(jī)技術(shù)初學(xué)者的必修課之一。說了這么多,其實(shí)python的成功,還是來源于它的簡單和功能強(qiáng)大,就比如現(xiàn)在,我們可以使用幾行簡單代碼,建立一個(gè)python http.server文件共享服務(wù)器。
2.1.Python的安裝和設(shè)置
首先,我們需要下載一個(gè)python(可以直接到python的官網(wǎng)www.python.org下載)
下載完成后,直接雙擊.exe
文件進(jìn)行安裝。
安裝過程中,要記得將python加入環(huán)境變量(path
)選項(xiàng)勾選上
接著創(chuàng)建一個(gè)文件夾,用于存放打算進(jìn)行發(fā)布的文件。為方便說明,我們將這個(gè)文件夾命名為server
再以管理員身份運(yùn)行cmd
,對python進(jìn)行設(shè)置。
先在cmd中輸入python
,只要能出現(xiàn)下圖顯示,就說明python安裝成功。
接著輸入命令行e:
,轉(zhuǎn)入E盤,在進(jìn)入打算共享的文件夾
cd server
最后輸入命令,執(zhí)行文件夾的端口輸出共享命令。
python -m http.server 9090”(其中端口號可以自選,但必須為未被占用的,可以選擇一些偏僻的端口)
命令輸入后,可能會出現(xiàn)防火墻詢問,我們點(diǎn)擊允許訪問
即可。
需要注意的是,python的共享服務(wù)功能很簡單也很基礎(chǔ),這里共享的是當(dāng)前執(zhí)行命令的文件夾,無法指定某個(gè)文件夾,所以我們需要先更換盤符和文件夾,才能執(zhí)行共享命令。
看到cmd顯示上面的內(nèi)容,就可以在瀏覽器中訪問本地9090端口,地址欄輸入localhost:9090
,訪問到python共享的文件。
由于python的簡單功能,我們不能關(guān)閉python的進(jìn)程,否則就會關(guān)閉文件共享端口。
2.2.cpolar的安裝和注冊
在完成python的文件夾共享設(shè)置后,我們就可以安裝和注冊cpolar,為后面的共享文件發(fā)布做好準(zhǔn)備。Cpolar的下載地址可以在cpolar的官網(wǎng)(www.cpolar.com)中找到。
在cpolar的下載頁面中,找到對應(yīng)版本的cpolar安裝程序,筆者使用的是Windows操作系統(tǒng),因此選擇Windows版下載。
下載完成后,將下載的文件解壓,并雙擊其中的.msi
文件,就能自動執(zhí)行cpolar的安裝程序,我們只要一路Next
,就能完成安裝。
由于cpolar會為每個(gè)用戶創(chuàng)建獨(dú)立的數(shù)據(jù)隧道,并輔以用戶密碼和token碼保證數(shù)據(jù)安全,因此我們在使用cpolar之前,需要進(jìn)行用戶注冊。注冊過程也非常簡單,只要在cpolar主頁右上角點(diǎn)擊用戶注冊
,在注冊頁面填入必要信息,就能完成注冊。
3.本地文件服務(wù)器的發(fā)布
完成了python的設(shè)置,安裝并注冊好cpolar,剩下的工作簡單了,只要使用cpolar建立一條數(shù)據(jù)隧道,數(shù)據(jù)隧道的入口為公共互聯(lián)網(wǎng)地址,出口連接本地的python共享文件網(wǎng)頁。
3.1.Cpolar云端設(shè)置
由于分享文件的需求可能隨時(shí)發(fā)生,而筆者又不想每次要分享文件是就設(shè)置一次數(shù)據(jù)隧道,所以筆者將cpolar升級至vip版,以便保留能長期穩(wěn)定存在的數(shù)據(jù)隧道(免費(fèi)版cpolar創(chuàng)建的數(shù)據(jù)隧道每24小時(shí)會重置一次)。
升級cpolar至vip后,我們首先登錄cpolar云端,在客戶主界面左側(cè)找到預(yù)留
按鈕,點(diǎn)擊進(jìn)入預(yù)留頁面。
在預(yù)留頁面,能看到cpolar提供多種協(xié)議的數(shù)據(jù)隧道保留,而我們的python是網(wǎng)頁輸出,因此找到保留二級子域名
欄位,并對這個(gè)欄位的信息進(jìn)行設(shè)置。
設(shè)置的信息內(nèi)容為:
地區(qū)
:服務(wù)器所在區(qū)域,就近選擇即可二級域名
:會最終出現(xiàn)在生成的公共互聯(lián)網(wǎng)地址中,作為網(wǎng)絡(luò)地址的標(biāo)識之一描述
:可以看做這條數(shù)據(jù)隧道的描述,能夠與其他隧道區(qū)分開即可
完成這幾項(xiàng)設(shè)置后,就可以點(diǎn)擊右側(cè)的保留
按鈕,將這條數(shù)據(jù)隧道保留下來。
如果這條數(shù)據(jù)隧道不打算再使用,還可以點(diǎn)擊右側(cè)的x
將其輕松刪除,節(jié)約寶貴的隧道名額。
3.2.Cpolar本地設(shè)置
完成cpolar云端的數(shù)據(jù)隧道入口保留后,我們回到cpolar本地客戶端,將cpolar云端生成的數(shù)據(jù)隧道入口與本地python網(wǎng)頁連接起來。
首先登錄cpolar客戶端,(可以在瀏覽器中輸入localhost:9200
直接訪問,也可以在開始菜單中點(diǎn)擊cpolar客戶端的快捷方式),點(diǎn)擊客戶端主界面左側(cè)隧道管理
——創(chuàng)建隧道
按鈕,進(jìn)入本地隧道創(chuàng)建頁面(如果要創(chuàng)建每24小時(shí)重置地址的臨時(shí)數(shù)據(jù)隧道,可直接在此進(jìn)行設(shè)置,不必在cpolar官網(wǎng)設(shè)置空白數(shù)據(jù)隧道)。
在這個(gè)頁面,同樣需要進(jìn)行幾項(xiàng)信息設(shè)置,這些信息設(shè)置包括:
隧道名稱
:可以看做cpolar本地的隧道信息注釋,只要方便我們分辨即可協(xié)議
:由于python的共享是是網(wǎng)頁形式,因此選擇http協(xié)議
本地地址
:本地地址即為本地網(wǎng)站的輸出端口號,之前我們將python的輸出端口設(shè)定在9090,因此這里也填入9090
- ???????
域名類型
:在這個(gè)例子中,我們已經(jīng)在cpolar云端預(yù)留了二級子域名的數(shù)據(jù)隧道,因此勾選二級子域名
(如果預(yù)留的是自定義域名,則勾選自定義域名),并在下一行Sub Domain
欄中填入預(yù)留的二級子域名,該例子中為“pythontest”。如果打算創(chuàng)建臨時(shí)數(shù)據(jù)隧道,則直接勾選“隨機(jī)域名”,由cpolar客戶端自行生成網(wǎng)絡(luò)地址 地區(qū)
:與cpolar云端預(yù)留的信息一樣,我們依照實(shí)際使用地填寫即可
完成這些設(shè)置后,就可以點(diǎn)擊下方的創(chuàng)建
按鈕,完成這條能夠長期留存的數(shù)據(jù)隧道搭建。
數(shù)據(jù)隧道創(chuàng)建完成后,cpolar會自動跳轉(zhuǎn)至隧道管理
——隧道列表
頁面。在這個(gè)頁面,我們可以對這條數(shù)據(jù)隧道進(jìn)行管理,包括開啟、關(guān)閉或刪除這條隧道,也可以點(diǎn)擊編輯
按鈕,對這條數(shù)據(jù)隧道的信息進(jìn)行修改。
而python的數(shù)據(jù)隧道入口(公共互聯(lián)網(wǎng)訪問地址),則可以在狀態(tài)
——在線隧道列表
中找到。
4.公網(wǎng)訪問測試
我們將這里的公網(wǎng)地址
粘貼到其他設(shè)備上的瀏覽器中,就能看到本地電腦上由python生成的文件分享網(wǎng)頁,并能輕松查看所分享的文件。
5.結(jié)語
至此,我們成功使用cpolar內(nèi)網(wǎng)穿透發(fā)布了python的文件分享網(wǎng)頁,雖然這個(gè)python文件分享網(wǎng)頁過于簡單,功能也很簡陋,但能夠很好的展示,網(wǎng)頁(或軟件)輸出端口與cpolar數(shù)據(jù)隧道端口設(shè)定之間的關(guān)系,即網(wǎng)頁(或軟件)的輸出端口,一定要與cpolar數(shù)據(jù)隧道填入的端口一致,才能準(zhǔn)確的連接起公共互聯(lián)網(wǎng)地址和本地網(wǎng)頁(或軟件)。
以上就是使用Python快速實(shí)現(xiàn)文件共享并通過內(nèi)網(wǎng)穿透技術(shù)公網(wǎng)訪問的詳細(xì)內(nèi)容,更多關(guān)于Python實(shí)現(xiàn)文件共享的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法,有興趣的朋友們可以參考下。2020-11-11python3使用matplotlib繪制散點(diǎn)圖
這篇文章主要為大家詳細(xì)介紹了python3使用matplotlib繪制散點(diǎn)圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Django框架靜態(tài)文件處理、中間件、上傳文件操作實(shí)例詳解
這篇文章主要介紹了Django框架靜態(tài)文件處理、中間件、上傳文件操作,結(jié)合實(shí)例形式詳細(xì)分析了Django框架中靜態(tài)文件處理、中間件及上傳文件操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2020-02-02基于Flask框架添加多個(gè)AI模型的API并進(jìn)行交互
這篇文章主要介紹了如何基于 Flask 框架開發(fā) AI 模型 API 管理系統(tǒng),允許用戶添加、刪除不同 AI 模型的 API 密鑰,感興趣的可以了解下2025-03-03python之語句mode = 'test' if y&nb
這篇文章主要介紹了python之語句mode = 'test' if y is None else 'train'問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02