繁体   English   中英

无法通过公网IP访问EC2

[英]Can't access EC2 through public IP

我已经设置了一个 VPC 并在其公共子网之一中创建了一个 EC2 实例。 实例的用户数据有下面的简单代码。 当我连接到实例时,我得到的只是下面的屏幕截图。 它应该是一个网页,上面写着你好世界。 有人能指出我正确的方向吗?

我太新了,无法嵌入图像,所以 Stackoverflow 给了我一个图像链接: https ://i.stack.imgur.com/jGqcY.png 这是我通过浏览器访问公共 IP 地址时得到的结果: Chrome剪辑

编辑:我想做的是通过公共 IP 访问网站,但无法连接。 另请参阅 shell 中的“拒绝连接”:拒绝连接

EDIT2:当我尝试获取相关 IP 时,也来自 shell。 这是什么意思? 指定地区

Edit3: curl 本地主机连接被拒绝

Edit4:入站 SG出站 SG

# #!/bin/bash

#Use this for your user data (script from top to bottom)

#install httpd (Linux 2 version)

yum update -y

yum install -y httpd

systemctl start httpd

systemctl enable httpd

echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html

我已确保公共子网与目的地为 0.0.0.0/0 且目标为 IGW 的路由表相关联。

SG 允许来自 IPv4 和 IPv6 的所有 HTTP 和 HTTPS 流量。

ACL 允许所有出站和入站流量,所有子网都与之相关联。

看起来你的网络服务器没有运行(基于你从盒子里做curl时得到的拒绝)

调查试试这个

sudo cat /var/lib/cloud/instance/scripts/part-001这应该显示你的用户数据脚本——如果没有,那么你以某种方式错误配置了用户数据

sudo cat /var/log/cloud-init-output.log查看用户数据脚本运行时发生的事情的日志。 如果您在此处看到错误,那么您将需要调试并更正您的用户数据

同样作为调试的一部分,您可以尝试从命令行在您的用户数据中运行相同的命令,看看您是否得到一个工作的网络服务器(看看curl是否工作)。 在从命令行运行这些之前,您可能需要sudo su

请注意,如果您更改用户数据,它不会对已经运行的 EC2 实例生效。 用户数据仅在 EC2 服务器最初启动时运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM