【问题标题】:ELB connection issue for port 80 from ec2 instance来自 ec2 实例的端口 80 的 ELB 连接问题
【发布时间】:2022-01-09 18:44:45
【问题描述】:

我有一个负载均衡器 classic2-**.us-east-1.elb.amazonaws.com 及其公共,我已将所有连接的端口 443 和 80 列入白名单,并且按预期从另一个公共 ec2 服务器连接良好:

...
ec21~]#telnet classic2-**.us-east-1.elb.amazonaws.com 80
Trying ***...
Connected to ec2-***.compute-1.amazonaws.com.
Escape character is '^]'.
...

后来我将负载均衡器的传入安全组更改为端口 80,并只允许 ec2 访问负载均衡器的端口 80。为此,我编辑了负载均衡器入站规则的安全组,并将源添加为 ec2 安全组名称 (sg-****)。保存该规则后,我尝试从 ssh 远程登录到端口 80 到负载均衡器,但它不接受连接:

....
# telnet classic2-**.us-east-1.elb.amazonaws.com 80
Trying ****...
telnet: connect to address ****: Connection timed out
....

不知道为什么拒绝。实例和 elb 都在公共子网中,并且 elb 不使用 ec2 实例安全组作为源。

任何建议,谢谢

【问题讨论】:

  • 您从哪里运行telnet 命令?
  • @JohnRotenstein 在做 ssh 后来自 ec2 实例

标签: amazon-web-services amazon-ec2 amazon-elb


【解决方案1】:

我怀疑负载均衡器被配置为公共负载均衡器。因此,DNS 名称将解析为公共 IP 地址。因此,telnet 连接将连接到负载均衡器的公共 IP 地址。 (您可以通过将 DNS 名称解析为 IP 地址来进行测试,例如使用 nslookup 甚至 ping。)

但是,当一个安全组引用另一个安全组时,它允许通过私有 IP 地址进行连接,因为它希望连接完全发生在 VPC 内。

有两种方法可以解决这个问题:

  • 将负载均衡器更改为内部负载均衡器
  • 更改安全组以允许来自实例的公共 IP 地址的入站连接,而不是安全组标识符

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2017-04-26
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    相关资源
    最近更新 更多