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

上次更新时间:2020 年 9 月 18 日

我的 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