我有一个使用以下安全组运行的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
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在浏览器中访问http:// {PUBLIC_IP}或https:// {PUBLIC_IP}时,出现“ {IP}拒绝连接”错误。我是AWS的新手。我在这里想念什么吗?我应该怎么做调试?
调试此类特定问题的一种方法是使用netcat以确定问题所在。
如果您netcat在实例的公共IP地址上的端口80上运行,而只是挂起(根本没有输出),那么您的安全组很可能不允许流量通过。这是来自一个EC2实例的示例,该实例位于一个安全组中,不允许进入端口80流量:
% nc -v 55.35.300.45 80
<just hangs>
Run Code Online (Sandbox Code Playgroud)
而如果将安全组更改为允许端口80,但EC2实例在端口80上没有侦听任何进程,则将获得以下信息:
% nc -v 55.35.300.45 80
nc: connectx to 52.38.300.43 port 80 (tcp) failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
假设您的浏览器为您提供了类似的“拒绝连接”,则最有可能的问题是您的实例上没有运行Web服务器。您可以通过进入实例并查看是否可以连接到端口80来验证这一点:
ssh ec2-user@55.35.300.45
% nc -v localhost 80
nc: connect to localhost port 80 (tcp) failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
如果您得到上述类似的信息,则说明您肯定没有在运行网络服务器。
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |