2016-01-17 110 views
0

我遇到了在Ubuntu上運行的python web服務器的可見性/可訪問性問題。服務器代碼如下:從外部機器訪問python web服務器

#!/usr/bin/python 
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer 

PORT_NUMBER = 8899 

#This class will handles any incoming request from 
#the browser 
class myHandler(BaseHTTPRequestHandler): 

     #Handler for the GET requests 
     def do_GET(self): 
       self.send_response(200) 
       self.send_header('Content-type','text/html') 
       self.end_headers() 
       # Send the html message 
       self.wfile.write("Hello World !") 
       return 

try: 
     #Create a web server and define the handler to manage the 
     #incoming request 
     server = HTTPServer(('', PORT_NUMBER), myHandler) 
     print 'Started httpserver on port ' , PORT_NUMBER 

     #Wait forever for incoming htto requests 
     server.serve_forever() 

except KeyboardInterrupt: 
     print '^C received, shutting down the web server' 
     server.socket.close() 

調用它本地使用curl下面命令工作 - 我收到的 'Hello World' 的答案。

curl {externalIP}:8899 

在瀏覽器中打開地址(chrome,ie)失敗!

http://{externalIP}:8899/ 

UFW的狀態是不活動的

的iptables如下

Chain INPUT (policy ACCEPT) 
target  prot opt source    destination 
ACCEPT  tcp -- anywhere    anywhere    tcp dpt:8765 

Chain FORWARD (policy ACCEPT) 
target  prot opt source    destination 

Chain OUTPUT (policy ACCEPT) 
target  prot opt source    destination 

Ubuntu已經Apache2的服務器上安裝並使用網絡瀏覽器,外部IP和端口80打開HTML文件正在與上面沒有問題服務器...

任何想法我還能檢查什麼?

回答

0

刪除apache修復了這種情況。我不知道爲什麼,因爲它應該阻止端口80,但它現在的作品之後:

apt-get remove apache2* 
0

我想你可能正在監聽環回接口,而不是連接到互聯網的那個。

請指定IP或者使用:

server = HTTPServer(('0.0.0.0', PORT_NUMBER), myHandler)

指定要聽你的所有網絡接口。

+0

嗨。謝謝您的回答。不幸的是,在指定的代碼行中將第一個參數更改爲外部IP(並且在第二次嘗試中爲0.0.0.0)後,效果相同。局部捲曲作品,外部瀏覽器超時。 – user4738010

+0

ping是否可以在另一臺機器上工作?如果您從客戶端telnet到端口8899,響應是什麼? –

+0

我用膩子(ssh)配置了所有東西,我可以ping ubuntu。更重要的是配置了apache2,我可以在html目錄中查看html文檔。我根本無法訪問我的Web服務器。 – user4738010

相關問題