【发布时间】:2014-08-11 00:30:46
【问题描述】:
我试图在我的 EC2 上运行一个简单的 Python TCP 服务器,侦听端口 6666。我创建了一个入站 TCP 防火墙规则来打开端口 6666,并且对传出端口没有限制。
我无法从外部世界连接到我的实例,但是使用 telnet 或 netcat 进行测试永远无法建立连接。但是,如果我从 localhost 建立连接,一切都会奏效。
关于什么可能是错误的任何想法?
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 6666
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data) # echo
conn.close()
【问题讨论】:
-
您是如何添加入站 TCP 防火墙规则的?您是否修改了与此实例关联的安全组?
-
在尝试从外部联系您的服务器时,您使用的是内部还是外部 EC2 地址?
-
我使用的是“ifconfig eth0”显示的ip地址
-
是的,我修改了实例的默认安全组。
标签: python amazon-web-services tcp amazon-ec2 firewall