如何解决在使用 NAT 实例时出现的间歇性连接问题?

1 分钟阅读
0

我正在使用 NAT 实例将实例连接到 Amazon Virtual Private Cloud (VPC) 子网中的互联网。但是,这些实例存在间歇性连接问题。

简短描述

间歇性连接问题可能是由以下原因引起的:

  • 源端的端口耗尽。
  • 网络访问控制列表(网络 ACL)规则。
  • 网络连接问题。

解决方法

减少源端的端口耗尽

首先验证私有子网中的实例是否已达到其操作系统级别连接限制。如需获取活动连接的数量,请运行 netstat 命令。

Linux:

netstat -ano | grep ESTABLISHED | wc --lnetstat -ano | grep TIME_WAIT | wc --l

Windows:

netstat -ano | find /i "estab" /cnetstat -ano | find /i "TIME_WAIT" /c

注意: 如果您将 TCP 参数配置为在 TIME_WAIT 状态下重用端口,请从前面的命令中删除 TIME_WAIT。

如果该命令返回的值接近允许的总端口范围,则可能会出现端口耗尽的情况。

接下来,通过增加操作系统的临时端口范围来减少端口耗尽。

在 Windows 中,以管理员身份运行以下命令:

netsh int ipv4 set dynamicport tcp start=1025 num=61000

对于 Linux,以根用户身份运行以下命令:

echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

**注意:**根据您的 Linux 发行版,在重启期间永久设置先前的参数。或者解决所有使用可用连接的应用程序级别问题。

验证网络 ACL 规则是否允许临时端口范围的流量

公共子网和私有子网的网络 ACL 必须允许临时端口范围的流量。有关设置网络 ACL 规则的详细信息,请参阅使用网络 ACL。有关 NAT 网关所需端口范围的信息,请参阅临时端口

检查网络连接

如果源、NAT、网络介质或目标的网络性能下降,则可能会遇到连接问题。要解决此问题,请参阅如何解决 VPC 中的 EC2 Linux 或 Windows 实例与本地主机之间通过互联网网关通信时的网络性能问题?

如果网络在实例级别超过其网络最大值,您也会遇到网络问题。有关详细信息,请参阅监控 EC2 实例上的 ENA 设置的网络性能

AWS 官方
AWS 官方已更新 1 个月前