轉載自遠程內網穿透的文章:【Python】快速簡單搭建HTTP服務器并公網訪問「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/)找到對應操作系統(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服務器頁面。
文章來源:http://www.zghlxwxcb.cn/news/detail-423570.html
5.結語
至此,我們成功的使用python建立一個簡單的服務器頁面,并且通過cpolar為其創(chuàng)建了一條能夠穿透內網屏障的數(shù)據(jù)隧道,將這個python網頁發(fā)布到公共互聯(lián)網上。其實,只要知道網頁(或軟件)的輸出端口號,我們都可以使用cpolar穿透內網,讓我們在公共互聯(lián)網上訪問到本地的網頁(或軟件)。文章來源地址http://www.zghlxwxcb.cn/news/detail-423570.html
到了這里,關于Python一行命令搭建HTTP服務器并外網訪問 - 內網穿透的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!