当前位置: 首页 > 知识库问答 >
问题:

EC2安全组无法相互通信

从光启
2023-03-14

我有两个AWS EC2实例,它们试图通过自定义TCP端口相互通信。每个实例都有自己的安全组,但两者都不能相互通信。

这是我的设置:

EC2实例1

  • 名称:实例-1
  • 公共IP地址:aaa.bbb.ccc。ddd
  • 安全组ID:sg-xxxxxxxxxx 1
  • SG入站规则:无
  • SG出站规则:
    • 类型:所有流量,协议:全部,端口范围:全部,目标:0.0.0.0/0

    EC2 实例 2

      < li >名称:实例-2 < li >公共IP地址:www.xxx.yyy.zzz < li >安全组ID: sg-xxxxxxxxxx2 < li>SG入站规则: < ul > < li >类型:自定义TCP规则,协议:TCP,端口范围:12345,来源:sg-xxxxxxxxxx1

    SG出站规则:

      < li >类型:所有流量,协议:所有,端口范围:所有,目标:0.0.0.0/0

    问题

    每当实例1尝试向www.xxx.yyy.zzz:12345发起TCP请求时,连接就会超时。

    如果我将以下入站规则添加到实例 2 的 SG 中,它就可以正常工作:

    • 类型:所有流量,协议:所有,端口范围:12345,源:0.0.0.0/0

    总结

    我需要实例1与实例2通信,而不允许来自任何地方的流量访问端口12345。有办法做到这一点吗?

共有1个答案

燕扬
2023-03-14

无法使用安全组作为传入源访问公共IP。

当您将安全组指定为规则的源或目标时,该规则会影响与该安全组关联的所有实例。基于与源安全组相关联的实例的私有IP地址(而不是公共IP或弹性IP地址)允许传入流量。有关IP地址的更多信息,请参见Amazon EC2实例IP寻址。

使用私有IP地址或使用公共IP作为源。

引用

安全组连接跟踪

 类似资料:
  • 我有2个EC2 Ubuntu实例。它们共享相同的VPC、子网和安全组。实例的防火墙已关闭。但我仍然无法通过私有IP彼此ping。如何允许这些实例彼此ping?

  • 只有当安全组有来自安全组本身的ICMP ping条目时,我才能在不同子网中的两个EC2实例之间公开ping,如下所示: 我的两个 EC2 实例都附加了此安全组。出站规则保留为默认值,即允许所有出站流量。如果我将源更改为“0.0.0.0/0”,那么我就可以在它们之间ping,但是我想将其锁定以仅允许此特定安全组中的此行为。 下面是我的两个EC2实例中应用的安全组的图像: 我原以为此策略将允许安全组内

  • 我想问一下关于在AWS中连接EC2到RDP的问题。 我已经将我的EC2安全组(包含EC2实例)添加到默认的RDP组中,数据正在流动——连接正常。 EC2安全组启用了端口80到0.0.0.0/0以及SSH到我的IP。 我有点担心,通过将这个EC2组添加到RDS数据库,它将允许来自任何地方的端口80流量访问数据库。这是对的还是错的? 如果像这样连接RDS实例,EC2中的规则是否适用于它们? 我确实在A

  • 我无法使用公共ip连接到同一安全组中的另一个EC2实例。 如果我尝试使用公共DNS名称和私有IP进行连接,它工作正常。 到目前为止,我做了什么: 已创建两个 EC2 公有实例 已将两个实例附加到安全组 sg-12345 已添加入站规则 所有流量,源 = sg-12345 SSH 端口 = 22,源 = 我的 ip (这是从我的桌面登录到我的 EC2 实例)

  • 我加载的证书对“每个人”都有完全的特权。我已经尝试了我在互联网上看到的每一个解决方案,但仍然得到错误。 下面是我创建请求的代码: 获取证书的代码(我也尝试过使用pfx): 第二个编辑:我可以让它在SoapUI中工作,但不能在。NET应用程序中工作,只需从SOAP UI中的文件系统中加载SSL证书即可。

  • 有两个EC2窗口实例放置在同一个VPC和同一个公共子网中,具有相同的安全组。我想检查两者是否能够使用ping命令相互通信。我在安全组和NACL级别都添加了规则。除了“所有”流量之外,所有ICMP也被单独包含在内。但我无法测试相同的。请建议是否有其他方法可以检查两个ec2窗口实例之间的连接?