安全组中的AWS端口但无法连接

时间:2014-04-14 18:51:50

标签: amazon-web-services port

我有一个拥有80,443,22和8089的安全组。

Ports  Protocol   Source    security-group
22      tcp      0.0.0/0      [check]
8089    tcp      0.0.0/0      [check]
80      tcp      0.0.0/0      [check]
443     tcp      0.0.0/0      [check]

但是,当我使用Python程序测试连接时,我写道:

import socket
import sys

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
p = sys.argv[1]
try:
    s.connect(('public-dns', int(p)))
    print 'Port ' + str(p) + ' is reachable'
except socket.error as e:
    print 'Error on connect: %s' % e
s.close()

但是,我对所有端口都很好,但8089:

python test.py 80
Port 80 is reachable
python test.py 22
Port 22 is reachable
python test.py 443
Port 443 is reachable
python test.py 8089
Error on connect: [Errno 61] Connection refused

2 个答案:

答案 0 :(得分:2)

您能够通过localhost(127.0.0.1)成功连接而不是外部连接的原因是您的服务器应用程序仅侦听localhost适配器。这意味着只有源自实例本身的连接才能连接到该进程。

要解决此问题,您需要将应用程序配置为侦听接口的本地IP地址或所有接口(0.0.0.0)。

这鞋是错的(听127 ......):

~ $ sudo netstat -tulpn | grep 9966
tcp        0      0 127.0.0.1:9966          0.0.0.0:*               LISTEN      4961/python 

这是正常工作(使用所有接口):

~ $ sudo netstat -tulpn | grep 9966
tcp        0      0 0.0.0.0:9966            0.0.0.0:*               LISTEN      5205/python

答案 1 :(得分:0)

除了AWS安全组(看起来你已经正确设置)之外,还需要确保如果主机上有内部防火墙,那么它对所有指定的端口也是开放的。