为什么我的 EC2 实例无法通过互联网网关连接到互联网?

上次更新时间:2019 年 8 月 29 日

我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例有一个公有 IP 地址,但无法访问互联网。如何解决此问题? 

解决方法

首先,验证是否满足以下条件:

  • 实例子网中的路由表含有一个指向某个互联网网关的默认路由
  • 附加到实例的弹性网络接口的安全组必须允许以下端口的出站流量:
    端口 80(HTTP 流量)
    端口 443(HTTPS 流量)
  • 识别与实例所在子网关联的网络访问控制列表 (ACL)。这些网络 ACL 必须含有允许端口 80 和 443 入站和出站流量的规则。

如果所有这些条件都已满足,但仍然存在互联网连接问题,请尝试以下操作:

  • 测试该站点或位置是否可以从已知正常的实例或设备访问。
  • 验证任何防火墙设备或软件是否允许 HTTP 或 HTTPS 流量。以下命令将添加入站防火墙规则。
    对于 Windows Server 默认防火墙,请运行以下命令:
netsh advfirewall firewall add rule name="Open Port <port number>" dir=in action=allow protocol=TCP localport=<port number>

对于 Linux 服务器(CentOS、RHEL 7 +),请运行以下命令:

sudo firewall-cmd --zone=public --add-port=<port number>/tcp --permanent
sudo firewall-cmd –reload