跳至内容

为什么我的 Amazon EC2 实例无法通过互联网网关访问互联网?

2 分钟阅读
0

我在公有子网中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例具有公共 IP 地址或互联网网关,但无法访问互联网。

解决方法

先决条件:

  • 将具有指向互联网网关 (0.0.0.0/0) 默认路由的路由表与您实例的子网相关联。
  • 检查您是否未删除与该路由关联的互联网网关。
  • 使用允许您的端口和协议的出站互联网流量 (0.0.0.0/0) 的规则配置连接到实例弹性网络接口的安全组。
  • 确认与您的实例子网关联的网络访问控制列表 (ACL) 具有允许互联网出站和入站流量的规则。

如果公有子网中的实例没有公共 IP 地址,则无法在其所在的虚拟私有云 (VPC) 外部访问实例。即使实例具有互联网网关,也是如此。

要允许实例连接到互联网,请分配弹性 IP 地址,然后与实例关联弹性 IP 地址

对于具有公共 IP 地址的实例,请检查是否存在阻止互联网访问的防火墙规则,然后删除该规则。或者,停用防火墙。

删除阻止访问的防火墙规则

在操作系统 (OS) 中运行的本地防火墙可能会阻止对特定端口或 IP 地址的出站访问。要解决此问题,请列出您的防火墙规则,然后删除阻止访问的规则。

**注意:**在删除任何规则之前,请将规则备份到文件中。

Linux 分配

要列出防火墙规则,请根据您在实例上配置的防火墙运行以下命令之一:

简单防火墙

sudo ufw status numbered

firewalld

sudo firewall-cmd --list-all-zones

iptables

sudo iptables -L --line-numbers

要删除防火墙规则,请根据您在实例上配置的防火墙运行以下命令之一。

简单防火墙

sudo ufw delete rule_number

**注意:**将 rule_number 替换为要删除的防火墙规则。

firewalld

sudo firewall-cmd --zone=zone --remove-rich-rule=rule --permanent
sudo firewall-cmd --reload

**注意:**删除 --permanent 规则后,必须重新加载防火墙才能使更改立即在运行时配置中生效。

iptables

sudo iptables-save > iptables_backup.txt
sudo iptables -D chain rule_number

Windows Server

要列出 Windows Server 默认防火墙的防火墙规则,请运行以下命令:

netsh advfirewall firewall show rule name=all

如果前面命令输出中的任何规则显示被阻止的流量,请运行以下命令移除该防火墙规则:

netsh advfirewall firewall delete rule name=rule_name

**注意:**将 rule_name 替换为阻止流量的防火墙规则的名称。

有关详细信息,请参阅 Microsoft Learn 网站上的 Windows 防火墙工具

停用防火墙

Linux 分配

您也可以停用本地防火墙,改为使用安全组

**注意:**停用防火墙可能会影响您的工作负载。

要停用防火墙,请运行以下命令之一:

简单防火墙

sudo ufw disable

firewalld

sudo systemctl disable firewalld --now

iptables

sudo systemctl disable iptables

如果您必须使用防火墙,请运行以下命令之一以允许传出流量:

简单防火墙

sudo ufw default allow outgoing

iptables

sudo iptables P OUTPUT ACCEPT
sudo iptables I OUTPUT j ACCEPT

**注意:**默认情况下,firewalld 允许系统在任何区域中发出所有出站流量,除非没有富规则。

Windows Server

要停用适用于 Windows Server 的 Windows 防火墙默认防火墙,请运行以下命令:

netsh advfirewall set allprofiles state off

有关详细信息,请参阅 Microsoft Learn 网站上的 Windows 防火墙工具

相关信息

使用互联网网关为 VPC 启用互联网访问

为什么我无法使用 NAT 将私有子网中的 EC2 实例连接到互联网?

AWS 官方已更新 4 个月前