我曾在其他地方看到过这个问题,但是现在我已经浏览过其他问题中提出的每个解决方案,因此我在这里重新询问,希望有人能有不同的解决方案。
问题:我有一个 EC2 实例,我可以通过 ssh 进入并对其进行操作,并且我已为其设置了 Elastic ip。我无法 ping 此机器,也无法使用浏览器登录。
提到并尝试过的解决方案:
服务 httpd 启动
我得到的回应是“无法识别的服务”
ii. 当我运行 apache2ctl -k start 时,它显示“httpd 已在运行”,因此我假设 httpd 不是问题,它只是可能由于 apache2 或其他原因而被命名为其他名称。
我进入 EC2->安全组->默认(我使用的那个)->入站,那里的一切都设置正确(我假设)。那里显示 80(HTTP)0.0.0.0/0。443(HTTPS)0.0.0.0/0,以及各种其他服务及其端口,旁边是 0.0.0.0/0。我还启用了一条规则,用于临时启用 0.0.0.0/0 上的 ICMP 请求全部,以进行测试
我尝试使用“service ufw stop”禁用 iptables
为了以防万一我做了一些非常愚蠢的事情,因为我并不习惯连接到我启动的 Web 服务器,所以我将机器的地址输入到 URL 中,像这样(假设我的 IP 地址是 ip.address)。
一、http:/(斜线)ip.address/
ii. ip 地址
iii. https:/(斜线)ip.address/
iv. ip.地址/webFolderName/
v. http:/(斜线)ip.address/webFolderName/
所有的尝试都失败了,我唯一没有尝试过的方法是启动机器上的 wireshark,看看请求是否到达它,但它只是忽略了这些请求。我还不确定是否要这样做,因为 A)。我不能 100% 确定如何在没有 GUI 的情况下使用 wireshark,因为这是我唯一使用过它的方式(我真的应该习惯在终端上使用它,但我甚至不知道你可以这样做)。B)。我真的觉得我缺少一些简单的东西来让它工作。在此先感谢任何帮助。
答案1
我不确定我是否有答案,但我知道如何开始排除故障。
我首先要让 ping 工作正常。如果您启用允许所有 ICMP 的安全组(至少是暂时的),您应该能够 ping 您的机器并得到响应。
ping my.instance.ip.address
因此,如果您的实例的外部 IP 类似于 23.34.45.56,则可以使用
ping 23.34.45.56
确保你不是使用以 10 开头的内部 IP 地址——该地址不会从外部路由到您的 EC2 实例。
如果您没有收到 ping 响应,则问题可能出在任何一端。例如,您自己的 ISP 可能阻止了发送和接收 ping 所需的 ICMP 消息。因此,如果您没有收到 ping 响应,我接下来要尝试的是启动第二个实例,通过 ssh 进入该实例,然后尝试 ping 第一个实例以查看是否收到响应。如果没有,我会尝试使用 vanilla Ubuntu AMI,从外部和/或从第二个 EC2 实例进行 ping。
一旦您能够 ping 您的机器并得到响应,解决方案可能会变得更加清晰。
请注意,使用 http,您的 url 将是http://my.instance.ip.address
等,带有两个正斜杠,而不是一个。再次确保您的 IP 地址不以 10 开头,并且您使用的是外部 IP 地址。此外,确保您没有使用虚拟私有云 (VPC)。VPC 很棒,但它们需要额外的配置才能与其实例进行通信。