通过浏览器连接亚马逊(AWS)EC2实例

26

我在通过浏览器连接Amazon Elastic Cloud Computer实例时遇到了问题。

我尝试访问********.compute-1.amazonaws.com,但浏览器返回连接超时的消息。

我可以通过ssh和winscp连接。这就是我上传开发的Web应用程序的方式。我还创建了一个安全组,并添加了打开端口22和80的规则。

我需要将安全组分配给实例吗?

安全组的规则也没有源IP,其实是0.0.0.0 / 0

非常感谢您提供任何帮助,以使此网站可以通过浏览器查看。


你最终成功找到解决方案了吗? - Sohan Shirodkar
5个回答

23

默认情况下,您的实例只能在 default 安全组中。如果是 EC2 实例,则无法在实例运行时更改安全组,您需要事先指定它们。如果是 VPC 实例,则可以在运行时更改安全组。

将规则添加到 default

但是,您可以添加规则以允许端口 80 到该 default 安全组;只需不创建新的安全组,因为它无法关联正在运行的实例。

Web 服务器是否启动?

另外,请确保您的 Web 服务器已启动并正在运行。从您的实例(使用 SSH shell 访问),使用命令 netstat -lnp 检查正确的进程是否在端口 80 上侦听。您应该会看到一行带有 proto tcp 和以 :80 结尾的 Local Address。列出的 IP 地址应该是 0.0.0.0(表示“任何 IP”)或正在侦听的网络接口的特定 IP。

Web 服务器未启动

如果您需要 Web 服务器,请查看 Apache 或 Nginx。它们都支持 PHP。

希望这可以帮助您。


我已经将规则添加到实例正在使用的默认安全组中,但这并没有帮助。然后我尝试运行命令查看是否有正确的进程在监听(netstat -lnp),终端返回了以下内容:http://www.anonmgur.com/up/0e479fde3637cf97ec6fe3eeb47d3a50.png另外,一旦我安装了PHP,如何启动它? - IrfanM
我尝试了 "sudo service httpd start",这会启动 php / Apache 服务器,对吧? - IrfanM
@IrfanM:如何在您的实例上启动并运行Web服务器的后续建议超出了此问题的范围;请尝试打开一个新的、更具体的问题或搜索教程。 - Joseph Tanenbaum
1
我还不得不修改我的iptables,但重要的是要检查哪个安全组实际上与该实例链接(它写在实例摘要页面上)... - Dev Ze

3

我之前在使用EC2微型实例时也遇到类似的问题。我使用了Red-Hat AMI。尽管我在安全组中打开了8081端口,但我仍无法使用telnet连接到主机端口。最终,关闭iptables解决了我的问题。

sudo /etc/init.d/iptables stop

1

如果您将Windows用作服务器,请不要忘记禁用防火墙。


0

EC2实例防火墙可能已启用。 使用此命令进行检查:

sudo systemctl status firewalld

如果启用了,您可以使用以下方式禁用它:

sudo systemctl disable firewalld

或者设置规则允许80端口流量


0

在设置 AWS 上的 redash AMI 镜像时,我遇到了同样的问题。当实例未运行时,应更改入站安全规则。假设该实例正在运行(即已激活和启动); 如果您更改该机器的入站规则,则仍将面临防火墙问题。因此,在要更改入站规则的机器上停止机器。更改入站规则。现在启动机器。现在,您可以从刚刚打开机器访问权限的 IP 访问机器网址。


1
你能详细说明一下吗?这感觉像是一个不错的答案开端,但有点空洞。 - user1531971

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