通过公共IP连接Amazon EC2实例无法工作。

3
实例运行良好。我正在使用Linux操作系统和Apache-tomcat-8.0.33服务器。我可以使用Putty从私有IP访问,但是当我尝试通过公共IP访问时,无法访问。我已查看安全配置,所有端口均已启用。
请问有人能帮助我解决这个问题吗? 入站图片

2
欢迎来到StackOverflow!您所说的“我可以使用putty从私有IP访问”是什么意思?您是从哪里连接的?您能向我们展示您的安全组入站设置吗?请提供尽可能多的信息,以便我们能够协助您。 - John Rotenstein
我之前曾通过浏览器使用公共IP访问该实例,但突然停止了从浏览器的访问。但我可以通过22号端口进行访问。 - sachin DK
如果您通过SSH登录EC2实例,那么您可以使用curl localhost测试Web服务器。这将访问本地机器上的Web服务器。如果它能正常工作,则问题可能出在您的安全组上。如果不能正常工作,则问题可能出在您的Web服务器上。 - John Rotenstein
4个回答

9

我最近遇到了同样的问题; 我无法通过公共IP访问托管在Ec2服务器上的网站。

检查1:首先检查您的AWS安全组,并确保所有入站流量规则都正常。

检查2:Windows防火墙也可能会阻止通过公共IP访问。创建一个新规则,允许HTTP和HTTPS端口(80,443)的访问。

步骤

a. 进入控制面板--> Windows防火墙-->高级设置。 b. 从左侧菜单中选择入站规则。 c. 在右侧面板中选择新建规则。 d. 允许访问80和443端口。

在我的情况下,一旦我在入站规则下创建了新规则,一切都正常工作。


如此简单,却如此愚蠢地忘记了!永远不要忘记默认防火墙! - petrosmm

0

您打开了亚马逊Web控制台

您进入了Amazon EC2安全组

您应该有一个默认组用于入站规则(如下所示)

enter image description here

您点击 修改入站规则(这里是法语“modifier les règles entrantes”)

完成后,您可以添加您想要的子网的公共IP地址

enter image description here

我已添加了我的公共IP地址,你应该可以正常使用。


我试过了但是没用。以前我通过浏览器使用公共 IP 访问实例,但突然间无法从浏览器访问了。但是我可以通过端口 22 进行访问。 - sachin DK

0

1
已经将IGW分配给属于EC2实例的子网,但仍然无法正常工作。 - sachin DK
在此帐户中创建的每个EC2实例,是否都会发生这种情况?还是只有在同一VPC和子网中的这一个实例出现了问题? - Innocent Anigbo
仅在此情况下发生。顺便问一下,系统更新是否会更改任何配置? - sachin DK
如果您使用相同的VPC、子网、安全组等,并且它可以用于其他EC2,但不能用于这个EC2,则说明这是特定于此EC2实例的问题。任何软件更新都不应更改AWS上的任何设置。此时,从其映像重新创建此EC2可能更快。对该EC2进行映像,并从映像创建另一个EC2。 - Innocent Anigbo

0

正如您和其他人所提到的,您可以按照以下步骤找到问题:

1- 尝试使用公共IP地址在80端口上telnet到您的服务器,如果它打开了,请继续下一步,如果没有打开,则可能有两个问题:

  • 安全组(检查入站规则)

  • Web服务器设置(检查Web服务器设置并查找为什么不侦听端口80)

2- 如果telnet工作正常,则您没有连接问题,现在通过tail命令跟踪您的Web服务器访问日志,并尝试通过浏览器打开页面。如果您在访问日志中看到您的请求,但它没有返回您期望的正确值,则应检查您的Web应用程序。如果您无法看到您的请求,请检查您的Web服务器设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接