【问题标题】:Cannot connect to EC2 unless I allow ALL TCP connection in outbound of NACL除非我允许 NACL 出站中的所有 TCP 连接,否则无法连接到 EC2
【发布时间】:2019-12-30 23:29:11
【问题描述】:

我只想在 AWS 中的我的 EC2 机器上允许 ssh 和端口 8000 连接。

我将入站和出站连接设置为允许端口 22 和 8000(见下图)。
入站 出站

但是当我尝试 curl/SSH 进入机器时,它确实不起作用,除非我将 ALL_TCP 端口设置为在出站连接上打开(如下图所示)。

当然,我可以打开所有 TCP 端口,但我这样做是为了试验 NACL。

为什么?

【问题讨论】:

  • 您是否尝试从 31.201.1.1 SSH 进入机器?如果你从实例内部使用 curl 到外部网络,你必须让它在出站规则中与整个外部网络 0.0.0.0/0 对话。如果您希望能够从堡垒主机通过 SSH 连接到您的实例。您应该有 2 个公共子网(用于堡垒主机和 nat 网关)、2 个私有子网(用于私有实例)和 2 个 ACL(保护私有子网和公共子网)
  • 不要使用(无状态)ACL,除非您了解它们并且绝对需要它们。通常你不需要它们,应该简单地使用有状态的安全组。
  • @ArnabSaha 谢谢你的cmets,我是为了学习ACL

标签: amazon-web-services amazon-ec2


【解决方案1】:

这是由于临时端口造成的:

要启用与实例上运行的服务的连接,关联的网络 ACL 必须允许服务正在侦听的端口上的入站流量以及来自临时端口的出站流量。当客户端连接到服务器时,临时端口范围(1024-65535)中的一个随机端口成为客户端的源端口。

参考:https://aws.amazon.com/premiumsupport/knowledge-center/resolve-connection-sg-acl-inbound/

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2014-09-01
    • 1970-01-01
    相关资源
    最近更新 更多