轉(zhuǎn)載自遠(yuǎn)程內(nèi)網(wǎng)穿透的文章:【Python】快速簡單搭建HTTP服務(wù)器并公網(wǎng)訪問「cpolar內(nèi)網(wǎng)穿透」
1.前言
Python作為熱度比較高的編程語言,其語法簡單且語句清晰,而且python有良好的兼容性,可以輕松的和其他編程語言((比如C/C++))建立的模塊連接起來,而且python豐富強大的庫,經(jīng)過封裝可以輕松調(diào)用,因此深受歡迎。
今天我們就嘗試用python,建立一個簡單的http服務(wù)器,用來展示本地電腦上指定的目錄和文件。
2.本地http服務(wù)器搭建
一般來說,Python的簡單http服務(wù)器不依賴Apache、IIS等這些復(fù)雜的服務(wù)器程序,因為其自帶了只需一行命令就能建立http服務(wù)。但相對的,這個簡單http服務(wù)也沒法提供復(fù)雜功能,只能提供相對簡單的目錄服務(wù)。但對于想要學(xué)習(xí)和熟悉python,這又是必須進(jìn)行的一步。
2.1.Python的安裝和設(shè)置
首先,我們需要在本地安裝python程序。Python程序可以在其官網(wǎng)(www.python.org/)找到對應(yīng)操作系統(tǒng)版本下載。筆者使用的是Windows操作系統(tǒng),因此選擇Windows版本下載。
Python下載完成后,直接點擊安裝程序.exe即可進(jìn)行安裝。同時需要注意的是,在安裝過程中,需要注意勾選Add python.exe to PATH
選項。
完成python程序的安裝后,我們就可以著手建立python的http服務(wù)器了
2.2.Python服務(wù)器設(shè)置和測試
由于python內(nèi)建了簡單http服務(wù)包,因此對于python來說,只需輸入一行命令,就能輕松打開http服務(wù)。當(dāng)然,要運行網(wǎng)頁,就需要網(wǎng)頁有顯示內(nèi)容。因此我們可以先建立一個用于存放網(wǎng)頁文件的文件夾。例如筆者在本地電腦的E盤下新建了一個“test”文件夾
接著,以管理員身份運行本地電腦的命令提示符
界面,并輸入命令轉(zhuǎn)入該文件所存放的硬盤
e:
再轉(zhuǎn)入打算共享的文件夾
cd test
接著輸入命令啟動http服務(wù)
- 如果Python版本為2.x,輸入命令
python -m SimpleHTTPServer 8081
- 如果Python版本為3.x,輸入命令
python -m http.server 8001
其中的8081為打算搭建的服務(wù)器的輸出端口,只要選擇沒有被占用的端口即可。如果出現(xiàn)防火墻的提示信息,只要選擇允許訪問
即可。
命令行輸入完畢后,python給出反饋Serving HTTP on 0.0.0.0 port 8081 ...
,就說明我們python的http服務(wù)已經(jīng)成功開啟了,在本地8081端口下。
接著我們在本地電腦上的瀏覽器地址欄中,輸入localhost:8081
,就能打開打算分享的文件夾下的文件。
能看到這些內(nèi)容,就說明本地電腦上python的http服務(wù)已經(jīng)開啟,并且已經(jīng)可以查閱到這個文件夾下的文件。同樣的,如果我們在這個文件夾下放入網(wǎng)頁文件,也能夠顯示為網(wǎng)頁。
此時在同一局域網(wǎng)下的設(shè)備,只要在瀏覽器中輸入本地電腦的ip地址+端口號(具體格式為192.168.XXX.XXX:端口號),就能顯示出python的網(wǎng)頁。
不過,不能在公共互聯(lián)網(wǎng)訪問的網(wǎng)頁總覺得缺少靈魂,因此我們可以借助cpolar內(nèi)網(wǎng)穿透,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,讓我們可以在公共互聯(lián)網(wǎng)條件下,訪問到python。
3.cpolar的安裝和注冊
同樣的,我們可以在cpolar的官網(wǎng)(https://www.cpolar.com/)找到對應(yīng)操作系統(tǒng)版本的軟件,筆者這里也是選擇Windows版本。
Cpolar軟件下載完成后,將壓縮包解壓,并雙擊其中的.msi文件
,即可自動進(jìn)行安裝,我們只要一路點擊Next
即可。
由于cpolar會為每個用戶創(chuàng)建獨立的數(shù)據(jù)隧道,并輔以用戶密碼和token碼保證數(shù)據(jù)安全,因此我們在使用cpolar之前,需要進(jìn)行用戶注冊。注冊過程也非常簡單,只要在cpolar主頁右上角點擊用戶注冊
,在注冊頁面填入必要信息,就能完成注冊。
3.1 Cpolar云端設(shè)置
完成cpolar的安裝和注冊后,我們就可以著手使用cpolar,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,將本地電腦的python網(wǎng)頁與公共互聯(lián)網(wǎng)連接起來。需要注意的是,cpolar免費版的數(shù)據(jù)隧道每24小時重置一次。筆者并不想每天進(jìn)行重置數(shù)據(jù)隧道設(shè)置,因此將cpolar升級至vip版,以便能獲得能長期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。
要生成長期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,我們要先訪問cpolar官網(wǎng)并登錄,并在“儀表盤”頁面左側(cè),找到并點擊預(yù)留
按鈕,進(jìn)入“預(yù)留”頁面。
在“預(yù)留”頁面中,我們可以看到cpolar提供了多種協(xié)議的數(shù)據(jù)隧道保留項目。而python服務(wù)器是http協(xié)議,因此我們找到保留二級子域名
欄位。當(dāng)然,如果已經(jīng)向域名供應(yīng)商購買了自己的域名的,也可以選擇“保留自定義域名”欄位。
在“保留二級子域名”欄位,我們需要對打算保留的二級子域名進(jìn)行信息設(shè)置,而這些設(shè)置的信息,也會成為我們在公共互聯(lián)網(wǎng)訪問本地python服務(wù)器的隧道入口(公共互聯(lián)網(wǎng)地址的一部分)。具體需要設(shè)置的信息為:
地區(qū)
:服務(wù)器所在區(qū)域,就近選擇即可二級域名
會最終出現(xiàn)在生成的公共互聯(lián)網(wǎng)地址中,作為網(wǎng)絡(luò)地址的標(biāo)識之一描述
可以看做這條數(shù)據(jù)隧道的描述,能夠與其他隧道區(qū)分開即可
輸入這幾項設(shè)置后,就可以點擊右側(cè)的保留
按鈕,將這條數(shù)據(jù)隧道保留下來。如果我們不想要這條隧道的入口了,也可以點擊右側(cè)的“x”,輕松將隧道刪除
3.2 Cpolar本地設(shè)置
完成cpolar云端設(shè)置后,我們回到本地電腦上,打開并登錄cpolar客戶端(可以在瀏覽器中輸入localhost:9200直接訪問,也可以在開始菜單中點擊cpolar客戶端的快捷方式)。
點擊客戶端主界面左側(cè)隧道管理
——創(chuàng)建隧道
按鈕,進(jìn)入本地隧道創(chuàng)建頁面(如果要創(chuàng)建每24小時重置地址的臨時數(shù)據(jù)隧道,可直接在此進(jìn)行設(shè)置,不必再cpolar官網(wǎng)設(shè)置空白數(shù)據(jù)隧道)。
在這個頁面,同樣需要進(jìn)行幾項信息設(shè)置,這些信息設(shè)置包括:
隧道名稱
——可以看做cpolar本地的隧道信息注釋,只要方便我們分辨即可;協(xié)議
——tomcat輸出的是web網(wǎng)頁,因此選擇http協(xié)議;本地地址
——本地地址即為本地網(wǎng)站的輸出端口號,我們之前設(shè)置了8081為輸出端口,因此這里也填入8081;域名類型
——在這個例子中,我們已經(jīng)在cpolar云端預(yù)留了二級子域名的數(shù)據(jù)隧道,因此勾選“二級子域名”(如果預(yù)留的是自定義域名,則勾選自定義域名),并在下一行“Sub Domain”欄中填入預(yù)留的二級子域名,這里我們填入“pythonweb”(如果只是創(chuàng)建臨時數(shù)據(jù)隧道,則直接勾選“隨機域名”,由cpolar客戶端自行生成網(wǎng)絡(luò)地址);地區(qū)
——與cpolar云端設(shè)置時一樣,我們依照實際所在地就近填寫;
完成這些設(shè)置后,就可以點擊頁面下方的創(chuàng)建
按鈕,將本地python服務(wù)器網(wǎng)頁與cpolar云端保留的二級子域名連結(jié)起來,生成一條完整的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。
隧道創(chuàng)建完成后,cpolar會自動跳轉(zhuǎn)至隧道管理
——隧道列表
頁面,在這個頁面看到數(shù)據(jù)隧道的狀態(tài)(是否暢通),或是控制隧道的開啟、關(guān)閉或刪除。如果需要對隧道的信息進(jìn)行變更,也可以通過這里的“編輯”按鈕進(jìn)行
4.公網(wǎng)訪問測試
數(shù)據(jù)隧道建立完成后,我們可以點擊cpolar客戶端左側(cè)狀態(tài)
——在線隧道列表
。找到能夠訪問本地python服務(wù)器頁面的公共互聯(lián)網(wǎng)地址。
只要將這個地址輸入瀏覽器地址,就能輕松訪問到本地電腦上的python服務(wù)器頁面。
文章來源:http://www.zghlxwxcb.cn/news/detail-419741.html
5.結(jié)語
至此,我們成功的使用python建立一個簡單的服務(wù)器頁面,并且通過cpolar為其創(chuàng)建了一條能夠穿透內(nèi)網(wǎng)屏障的數(shù)據(jù)隧道,將這個python網(wǎng)頁發(fā)布到公共互聯(lián)網(wǎng)上。其實,只要知道網(wǎng)頁(或軟件)的輸出端口號,我們都可以使用cpolar穿透內(nèi)網(wǎng),讓我們在公共互聯(lián)網(wǎng)上訪問到本地的網(wǎng)頁(或軟件)。文章來源地址http://www.zghlxwxcb.cn/news/detail-419741.html
到了這里,關(guān)于Python一行命令搭建HTTP服務(wù)器并外網(wǎng)訪問【內(nèi)網(wǎng)穿透】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!