2015-11-02 202 views
0

我想建立一個簡單的Web服務,但是當我做一個HTTP請求到我的服務器沒有在端口8080發生的Natting ... 我已經發現,簡單的Python我設置的服務器在主私有IP的8080端口上偵聽,而不在公網IP端口上偵聽。AWS EC2公共IP和主要私有IP

我怎麼能發送HTTP請求到python腳本?我需要NAT嗎?

我在Ubuntu 14.04服務器

這是簡單的Python Web服務器

from BaseHTTPServer import BaseHTTPRequestHandler 
import urlparse 

class GetHandler(BaseHTTPRequestHandler): 

    def do_GET(self): 
     parsed_path = urlparse.urlparse(self.path) 
     self.wfile.write(parsed_path.query[2:]) 
     return 

if __name__ == '__main__': 
    from BaseHTTPServer import HTTPServer 
    server = HTTPServer(("0.0.0.0", 8080), GetHandler) 
    print 'Starting server, use <Ctrl-C> to stop' 
    server.serve_forever() 
+1

您是否設置了安全組以允許某些IP訪問端口8080? – lonelyloner

+0

我添加了自定義TCP規則TCP 8080 0.0.0.0/0,現在瀏覽器給我連接拒絕,而不是等待 – Aalto

回答

0

的問題是,我沒有設定p A規則8080!謝謝大家!

0

更改行:

server = HTTPServer(("0.0.0.0", 8080), GetHandler) 

使用公共IP網絡適配器的IP地址而不是「0.0.0.0」

+0

對不起,我誤解了你的答案!我搜索了「公共IP網絡適配器」,但我無法找到哪個是IP,是否必須查看亞馬遜服務或通過ssh在我的實例上使用某些命令? – Aalto

+0

使用實例中的ifconfig命令列出其網絡適配器?或ip命令 - 請參閱http://www.cyberciti.biz/faq/show-ethernet-adapter-ubuntu-linux/ – barny