2015-11-02 64 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