curl/wget 请求是否在随机临时端口上响应?

Does a curl/wget request respond on a random ephemeral port?

当我在 aws 中设置 VPC 时,我在 public 子网中创建了一个实例。该实例无法 ping 到 google,并且在连接到 yum 存储库时超时。

安全组已打开所需的端口。 当我编辑 ACL 以在入站中从 0.0.0.0/0 添加 ICMP 时,实例能够 ping 到 google。但是 yum 存储库仍然超时。所有 curl/wget/telnet 命令都返回错误。只有 ping 正常。

当我在 ACL 1024-65535 中为所有 0.0.0.0/0 中的入站添加以下端口范围时,即可以访问 yum 存储库。这是为什么?

出站流量在ACL 中全部允许。为什么我们需要允许来自这些端口的入站连接到任何站点?

在 AWS 中,NACL 附加到子网。安全组附加到实例(实际上是实例的网络接口)。

您必须删除了 NACL 入站规则 100,该规则随后使用规则 *,阻止所有传入流量。除非您有特定原因,否则我会在您的 NACL 中使用默认规则。使用 "stateful" 的安全组控制访问。 NACL 为 "stateless".

NACL 的默认入站规则:

规则 100 "ALL Traffic" 所有所有 0.0.0.0/0 允许 规则 * "ALL Traffic" ALL ALL 0.0.0.0/0 DENY

您的出站规则应如下所示:

规则 100 "ALL Traffic" 所有所有 0.0.0.0/0 允许 规则 * "ALL Traffic" ALL ALL 0.0.0.0/0 DENY

当您的 EC2 实例出站连接到另一个系统时,return 流量通常在端口 1024 到 65534 之间。端口 1 - 1023 被视为特权端口,并为特定服务保留,例如 HTTP (80 )、HTTPS (443)、SMPT (25, 465, 587) 等。安全组会记住连接尝试并自动打开所需的 return 端口。