如何从公司内部机器浏览器访问 AWS EC2 实例私有 IP 以访问在 EC2 上运行的应用程序
Posted
技术标签:
【中文标题】如何从公司内部机器浏览器访问 AWS EC2 实例私有 IP 以访问在 EC2 上运行的应用程序【英文标题】:How to hit an AWS EC2 instance private IP from company on premise machine brwoser to access application running on the EC2 【发布时间】:2020-09-25 22:33:50 【问题描述】:我有一个只有私有 IP 的 EC2,例如私有子网中的 AWS 上的 xxx.xx.xx.xx。前段时间我在那里设置了一个在端口 8080 上运行的应用程序。 安全组、NACL 等都设置为允许从我的机器 A 和另一台机器 B 进入 8080。A 和 B 都是我公司的本地机器。托管 EC2 的 VPC 连接到本地我猜是通过 ***-> 使用虚拟私有网关的站点到站点 *** 连接。我不太喜欢网络,所以不知道所有这些是如何设置和工作的。
现在的问题是我可以使用机器 B 上的浏览器轻松访问 ec2 私有 IP:8080。 所以http://xxx.xx.xx.xx:8080/ 是可路由的并且可以从机器 B 访问,并且应用程序渲染得很好。 但是如果我从我的机器 A 中点击相同的http://xxx.xx.xx.xx:8080,它会说连接被拒绝。
让我感到困惑的是最明显的问题,即机器 B 上如何工作得很好,但我的机器 A 上却不行。 在这种情况下可能发挥作用的因素是什么。
【问题讨论】:
【参考方案1】:您可以尝试使用机器“A”中的 telnet
或 tcptraceroute
进行检查。
【讨论】:
它说 Connecting To ..*.**...Could not open connection to the host, on port 23: Connect failed 您可以比较机器B的telnet和tcptraceroute结果。也许防火墙中的任何配置都必须再次检查。【参考方案2】:如果机器 A 和 B 都在同一个网络上,那么差异要么来自机器本身,要么来自特别允许机器 B(工作机器)访问的配置。
Amazon EC2 实例(在xxx.xx.xx.xx
上)可能已配置了安全组,仅允许从特定 IP 地址进行访问。您应该检查与 Amazon EC2 实例关联的所有安全组的入站配置。
如果这不是原因,那么可能是机器 A(未连接)所特有的东西导致了问题。通过尝试从另一台计算机(机器 C)连接来测试它是否能够连接。如果这样可行,那么问题肯定出在机器 A 上。
【讨论】:
谢谢约翰!它们都在我公司的网络上,但我不确定如何知道“机器 A 和 B 是否在同一个网络上”。安全组很好,并且允许来自整个公司 CIDR 的端口 8080 上的入站。我只是想知道如何配置以启用从本地网络到 AWS VPC 上的私有 IP 的路由?正如我所说,从我们的公司网络连接到 AWS 是通过站点到站点 ***。但我不知道的是,当机器 A 和 B 仍然托管在公司网络上时,这将如何以不同方式适用。 如果它们都“插在墙上”,则将它们视为在同一个网络上。从第三台机器上尝试将有助于确定问题出在机器 A 上,还是仅允许机器 B 出现的配置。 看起来它们不在同一个网段,因此只有机器 B 有明确的防火墙规则,允许它私下路由该 EC2以上是关于如何从公司内部机器浏览器访问 AWS EC2 实例私有 IP 以访问在 EC2 上运行的应用程序的主要内容,如果未能解决你的问题,请参考以下文章