Linux簡單的http伺服器:SimpleHTTPServer
搭建FTP,或者是搭建網路檔案系統,這些方法都能夠實現Linux的目錄共享。但是FTP和網路檔案系統的功能都過於強大,因此它們都有一些不夠方便的地方。比如你想快速共享Linux系統的某個目錄給整個專案團隊,還想在一分鐘內做到,怎麼辦?
很簡單,使用SimpleHTTPServer。
各種Linux發行版通常都內建了Python,故使用此方法非常方便。在其它OS(比如Windows)此方法也有效,但是要麻煩一些,必須先搭建Python環境。
SimpleHTTPServer是Python 2自帶的一個模組,是Python的Web伺服器。它在Python 3已經合併到http.server模組中。SimpleHTTPServer在Python 3的用法與在Python 2的用法相似,本文以Python 2為例。
SimpleHTTPServer有一個特性,如果待共享的目錄下有index.html,那麼index.html檔案會被視為預設主頁;如果不存在index.html檔案,那麼就會顯示整個目錄列表。
SimpleHTTPServer使用方法
1)進入待分享的目錄
2)執行命令python -m SimpleHTTPServer 埠號
注意:不填埠號則預設使用8000埠。
3)瀏覽器訪問該主機的地址:http://IP:埠號/
示例:執行命令
# cd /home/abc # python -m SimpleHTTPServer 8000 Serving HTTP on 0.0.0.0 port 8000 ... 192.168.20.33 - - [09/Jan/2016 15:13:28] "GET / HTTP/1.1" 200 - 192.168.20.33 - - [09/Jan/2016 15:13:33] code 404, message File not found 192.168.20.33 - - [09/Jan/2016 15:13:38] "GET /favicon.ico HTTP/1.1" 404 - 192.168.20.33 - - [09/Jan/2016 15:13:54] "GET /jdk-7u79-linux-x64.tar.gz HTTP/1.1" 200 -
瀏覽器開啟,可以看到如下內容:
點選jdk-7u79-linux-x64.tar.gz,下載成功。
使用時還要注意Linux的防火牆因素。
比如Ubuntu,假設使用8000埠,那麼得啟用此埠:
# ufw allow 8000
使用完後再關閉此埠:
# ufw delete allow 8000
如果是centos 則需要 iptables -I INPUT -p tcp --dport 8000 -j ACCEPT && /etc/rc.d/init.d/iptables save