我有一个EC2实例,它使用以下安全组运行:
HTTP - TCP - 80 - 0.0.0.0/0
Custom UDP Rule - UDP - 1194 - 0.0.0.0/0
SSH - TCP - 22 - 0.0.0.0/0
Custom TCP Rule - TCP - 943 - 0.0.0.0/0
HTTPS - TCP - 443 - 0.0.0.0/0但是,当我尝试在浏览器中访问http://{PUBLIC_IP}或https://{PUBLIC_IP}时,我收到一个"{IP}拒绝连接“错误。我是AWS的新手。我是不是漏掉了什么?我应该怎么做才能调试?
发布于 2016-04-21 03:06:36
调试这类特定问题的一种方法是使用netcat来确定问题所在。
如果您对实例的公共IP地址上的端口80运行netcat,并且只得到一个挂起(根本没有输出),那么很可能您的安全组不允许流量通过。以下是一个安全组中不允许端口80流量入站的EC2实例的示例:
% nc -v 55.35.300.45 80
<just hangs>如果将安全组更改为允许端口80,但EC2实例没有任何进程监听端口80,则会得到以下结果:
% nc -v 55.35.300.45 80
nc: connectx to 52.38.300.43 port 80 (tcp) failed: Connection refused假设您的浏览器给出了类似的“连接被拒绝”,问题很可能是您的实例上没有运行web服务器。您可以通过ssh进入实例并查看是否可以连接到端口80来验证这一点:
ssh ec2-user@55.35.300.45
% nc -v localhost 80
nc: connect to localhost port 80 (tcp) failed: Connection refused如果你得到类似上面的东西,你肯定不是在运行get服务器。
发布于 2016-04-20 13:44:25
您是否安装了webserver(ngingx/apache)来处理您的请求。如果是这样,请分享您的配置文件。(以便有助于故障排除)
发布于 2016-04-20 13:51:23
我认为原因可能是你没有为你的EC2实例设置web服务器,因为如果你试图访问http://{PUBLIC_IP}或https://{PUBLIC_IP},你需要有一个后台服务器来处理http请求,就像@Niranj Rajasekaran所说的那样。
顺便说一句,只需对{PUBLIC_IP}执行pinging操作,就可以查看与EC2实例的连接是否正常。
在命令提示符或终端中,键入
ping {PUBLIC_IP}
https://stackoverflow.com/questions/36732875
复制相似问题