无法通过IP地址访问EC2服务器

我遇到这个问题访问我的弹性公网IP在我的EC2实例在Web浏览器中。 安装了REDHAT 6.3,并安装了nginxnetworking服务器(启动并运行),并确保我启用了端口80,并且安装了所有需要的东西。

现在时间进入公共IP查看默认的nginx网页,什么也没有发生。 我无法访问IP地址。

现在我可以ping其他网站,但不能ping我的IP地址。

现在经过几个小时的尝试,并试图找出发生了什么事情…我想我应该检查在REDHAT操作系统的networking,每当我尝试编辑任何networking相关..这就是我失去了连接到服务器和无法重新启动networking。

我在这里错了什么? 为什么只是通过IP访问我的服务器这样一个困难的事情? 我现在需要做什么?

谢谢。

编辑。 这里是与EC2实例关联的安全组

Ports Protocol Source 20-21 tcp 0.0.0.0/0 22 tcp 0.0.0.0/0 80 tcp 0.0.0.0/0 14000-14050 tcp 0.0.0.0/0 

所以,在这里可能会有一些错误的东西。 您可以逐个testing它们,并将其归结为问题。

  1. 首先检查您是否能够从外部连接到端口。 为此,请使用此命令

     # telnet IP 80 

    如果你能够通过这个连接,那么这意味着你的WebServer设置肯定有问题,你不应该看下一个规则。

  2. 如果第一个不起作用,第二个要检查的是您的机器中的iptables,而不仅仅是AWS安全组。 要做同样的事情,请检查这个命令的输出。

     # iptables -L -n 

    如果你不是特别的把DROPREJECT放在默认的策略中,那么总是应该是ACCEPT。 要testingiptables是否是问题,可以尝试通过刷新规则或停止iptables服务来禁用iptables。

    要刷新规则,请使用以下命令:

     # iptables -F 

    要停止iptables服务:

     # service iptables stop 

    现在尝试访问您的网站。

  3. 第三个选项是检查你的机器上的Selinux。 在Redhat机器上,SElinux是默认启用的。 要检查相同,请使用此命令并检查状态:

     # getsebool 

    应该这样说:

     getsebool: SELinux is disabled 

    如果启用,则可能是原因。 试试用这个命令暂时禁用它:

     # setenforce 0 

    这将暂时禁用机器上的SElinux。 如果这可以解决您的问题,只需在/etc/sysconfig/selinux中将状态从Enforcing更新为disabled ,并且将永久禁用您的计算机上的SElinux。

希望这有助于。

如果只是networkingstream量,你仍然可以ssh到你的实例,那么这几乎肯定是你的configurationnginx。

你是否编辑过安全组防火墙,以允许SSHnetworkingstream量等?
默认安全组防火墙非常苛刻。

从您的EC2控制台

 Network & security -> Security groups -> default -> inbound 

可以从下拉列表中select一个模板规则或创build一个自定义的规则。

 add rule -> apply rule changes 

应该几乎是瞬间的变化

除了您的AWS安全组设置允许端口80,请检查您的Redhat防火墙。 默认情况下,端口80未打开。

在你的redhat系统上运行system-config-firewall-tui来获取redhat打开的防火墙configurationutil,然后允许http端口80访问。

GeekRide在突出显示不同的故障排除步骤方面做得非常好。 我部署的答案与iptables有关。 停止服务是一个很好的提示,可以快速识别问题。

要解决这个问题,一定要把你的端口“插入”表中。 不要追加,因为在列表末尾的“拒绝所有”条目后,您很可能会追加。 此示例使用5放置在端口22规则之后。 在你连接成ec2用户的情况下,添加sudo命令。

 # sudu su # iptables -L -n # iptables -I INPUT 5 -p tcp --dport XXXXX -j ACCEPT 

如果这样的话,一定要保存,以防iptables服务重启

 # iptables-save