gpt4 book ai didi

amazon-web-services - SSH 到面向 Internet 的 NLB 后面的私有(private) ec2 实例

转载 作者:行者123 更新时间:2023-12-02 14:27:27 24 4
gpt4 key购买 nike

这是我的设置:

  • 我在 us-east-1a 中有 3 个实例
  • instanceA 在公有子网中,公有 IP
  • instanceB 在私有(private)子网中,没有公共(public)IP
  • instanceC 在公有子网中,公有 IP
  • 我把 instanceC 放在 NLB 后面。 NLB 位于公共(public)子网 us-east-1a 和 us-east-1b
  • instanceC 的安全组是:
  • 允许来自 instanceA 的公共(public) IP
  • 的 SSH
  • 允许来自 instanceB 的私有(private) IP
  • 的 SSH

    我可以直接从 instanceA 和 B SSH 到 instanceC,没有任何问题。
    但是每当我 ssh 到 NLB 的 DNS 时,我只能从 instanceA 连接。
    每当我从 instanceB SSH 到 NLB 时,都会有一个连接超时。

    我检查了 NLB 的网络接口(interface),发现每个 NLB 的可用区都有一对公共(public)和私有(private) IP。

    从 instanceA,我可以 ssh 到 NLB 的公共(public) IP 地址,但我不能 ssh 到 NLB 的 privateIP。
    从 instanceB,我可以 ssh 到 NLB 的私有(private) IP 地址,但我不能 ssh 到 NLB 的公共(public) IP

    现在,我尝试 ssh -vvv NLB,我可以看到我正在尝试连接到 NLB 的公共(public) IP。这可能是我无法从 instanceB 连接到 NLB 的原因,因为正如我上面所说,instanceB 只能连接到 NLB 的私有(private) IP。

    我尝试修改 InstanceC 的 sg 并允许 ssh 从 0.0.0.0/0 并且我可以成功地从 instanceB 访问 NLB。但这不是我想要的。我不想让每个人都通过 NLB 访问 instanceC。

    我希望instanceB 也能够像instanceA 一样通过NLB ssh 到instanceC。我怎样才能做到这一点?我需要在 sg、nlb、az 等中修改什么?

    谢谢!

    最佳答案

    仅从您的问题中解决一个方面...

    您应该避免将 Amazon EC2 实例的 IP 地址放入安全组。如果您希望允许两个实例进行通信(例如,实例 A 与实例 C 通信),您应该配置:

  • 实例 A 上的安全组(SG-A),允许来自 Internet 的传入流量(大概)
  • 实例 C ( SG-C ) 上的安全组,允许来自 SG-A 的入站流量

  • 也就是说, SG-C应具体引用 SG-A .此引用将自动转换为安全组 ID(例如 sg-xxx )。这意味着 SG-A 关联的任何实例将允许在给定端口上到与 SG-C 关联的任何实例的入站连接 .

    这种方法的好处是可以替换实例或更改 IP 地址,而不会影响安全组。您还可以将其他实例添加到这些安全组中,它们将被自动授予相同的权限。

    底线:避免引用安全组内的特定私有(private) IP 地址。

    关于amazon-web-services - SSH 到面向 Internet 的 NLB 后面的私有(private) ec2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61442821/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com