显然,我的EC2实例无法正确访问互联网。以下是当我尝试安装Python模块时会发生的情况:[ec2-user@ip-172-31-90-31 ~]$ pip3 install flask
Defaulting to user installation because normal site-packages is not writeable
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fab198cbe10>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/flask/
等
但是,托管在同一EC2实例上的网站可以使用http和https访问。
安全组配置如下:
端口范围 | 协议 | 源 | |
---|---|---|---|
80 | TCP | 0.0.0.0/0 | |
22 | TCP | 0.0.0.0/0 | |
80 | TCP | :/0 | |
22 | TCP | :/0 | |
443 | TCP | 0.0.0.0/0 | |
443 | TCP | :/0 |
您没有列出附加到实例的安全组的出站规则的设置。你应该保留";允许所有";允许实例访问Internet的出站规则。
一般来说,您不应该修改ACL规则,使其偏离默认的";允许所有";设置,除非您有非常特殊的需求(例如创建DMZ(。我建议您首先从ACL中删除所有自定义规则,并将"all traffic"选项设置为";允许";。至少暂时尝试一下,以尝试识别问题。
例如,当建立到Internet的连接时,流量将来自随机分配的端口。您的ACL当前正在阻止所有此类端口。(需要澄清的是:您可能正在连接到远程计算机上的端口80,但该请求不是来自您自己计算机上的80。它来自随机分配的端口。(