1. 程式人生 > >Linux簡單的http伺服器:SimpleHTTPServer

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