一个EC2实例在VPC中的公共子网中运行Amazon Linux。
以下是安全组的出站规则:
ALLOW TCP on port 80 to 0.0.0.0/0 ALLOW TCP on port 443 to 0.0.0.0/0 ALLOW ICMP to 0.0.0.0/0
首先我SSH到实例。 然后,我试图向外部互联网提出一个简单的请求:
[ec2-user@nat1 ~]$ curl -v wikipedia.org/ * Trying 208.80.154.224... * Trying 2620:0:861:ed1a::1... * Immediate connect fail for 2620:0:861:ed1a::1: Network is unreachable
请注意,DNS正在由我自己的VPC内的AWS Route 53 dns服务器解决,因此不能certificate外部连接。
我看到Trying 208.80.154.224...没有任何关于失败的细节 – 有什么办法可以在那里获得更多信息?
下一步看起来像是将这个地址转换成IPv6的格式不正确。 这是一个线索吗? 或者只是IPv4失败时的自动追索?
最终的错误“networking无法访问”似乎可能是指IPv6networking的整体故障 – 这对我的目的来说是很好的。 所以这仍然让我寻找更多关于第一次尝试正确的IPv4地址失败的细节。
现在,这个EC2实例的networking接口的子网stream日志中的条目只被过滤到IP地址208.80.154.224 。 我看到的所有行在ACCEPT OK结束如下所示:
Event Data 2 027141088039 eni-66c1933c 10.0.17.220 208.80.154.224 60761 80 6 2 120 1436199193 1436199253 ACCEPT OK
有问题的EC2实例没有公开的IPv4地址,因此无法参与互联网。
简单地分配一个公共IP地址给实例,并且:
[ec2-user@nat1 ~]$ curl -v wikipedia.org/ * Trying 208.80.154.224... * Connected to wikipedia.org (208.80.154.224) port 80 (#0)