AWS Ubuntu实例无法访问互联网

6

我在亚马逊AWS上创建了一个新的Ubuntu实例,可以成功通过SSH连接。然而,当我尝试使用以下命令安装软件包时,它无法工作:

sudo apt-get install apache2  
...
...
0% [Connecting to ap-southeast-2.ec2.archive.ubuntu.com (91.189.91.23)]^Cubuntu@ip-10-1-0-99:/etc$

这个问题一直没有得到解决!

我尝试ping google.com.au,但是也没有响应。

以下是AWS的VPC配置:

Network ACL : 

Outbound:
Rule #  Type        Protocol    Port Range  Destination Allow / Deny
100 ALL Traffic ALL     ALL     0.0.0.0/0   ALLOW
*   ALL Traffic ALL     ALL     0.0.0.0/0   DENY

Inbound : 
Rule #  Type        Protocol    Port Range  Source  Allow / Deny
10  HTTP (80)   TCP (6) 80  0.0.0.0/0   ALLOW
120 HTTPS (443) TCP (6) 443 0.0.0.0/0   ALLOW
140 SSH (22)    TCP (6) 22  0.0.0.0/0   ALLOW
*   ALL Traffic ALL ALL 0.0.0.0/0   DENY

安全组出站设置:

Type    Protocol    Port Range  Destination 
ALL     Traffic     ALL     ALL     0.0.0.0/0

路由表设置:

Destination     Target      Status  Propagated
10.1.0.0/24 local       Active  No
0.0.0.0/0   igw-cfe30caa    Active  No

这里可能出了什么问题?编辑:nslookup和dig命令正常工作!谢谢!

1
听起来你的 DNS 出了问题。尝试使用“dig google.com.au”来查看 DNS 是否可以进行地址查找。 - maurice
您是使用自己的AMI镜像还是亚马逊提供的AMI来启动EC2实例?似乎您的镜像存在问题。 - BMW
实际上,dig google.com.au很好用!nslookup命令也可以使用。我正在使用AWS的AMI,只是使用了向导。 - askanaan
@askanaan - 尝试使用端口53的UDP和TCP协议。 - maurice
入站安全组在哪里?给我们入站安全组。 - Sailesh Kotha
显示剩余2条评论
2个回答

14

你的入站网络ACL只允许针对 入站 的TCP端口22、80和443的流量。它不允许响应你的出站请求在你的短暂端口上。

$ cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000

您需要在网络ACL中添加一个规则,以允许TCP 32768到61000通过...或者更好的方法是根本不使用入站网络ACL--将其设置回默认值,以允许所有流量通过。

除非您有特别复杂的网络配置,否则几乎肯定不需要使用网络ACL。 安全组中的入站规则通常足以控制对实例的访问。 入站安全组规则默认拒绝,而不像网络ACL那样是无状态数据包过滤器,安全组是有状态、TCP会话感知的。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Security.html#VPC_Security_Comparison

重要提示:请不要将上述短暂端口规则添加到安全组的入站规则中。由于安全组是有状态的,因此您只想在您希望TCP会话被启动的方向上“允许”流量。答复已建立的TCP会话将自动被安全组规则允许,但不会被网络ACL规则允许,因为它们的实现方式不同。

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - askanaan
你应该喝一杯啤酒了。我已经和我的VPC战斗了两个小时,因为我无法从新实例中访问互联网。我已删除了网络ACL上的所有流量规则并添加了一个仅SSH的规则。不确定我错过了这么多次。我发誓我看过网络ACL 100次。无论如何,谢谢! - Jim Rubenstein

2
*   ALL Traffic ALL     ALL     0.0.0.0/0   DENY - Wrong

*   ALL Traffic ALL     ALL     0.0.0.0/0   Allow - Right

如果您想连接到外部服务器(如google.com)或者想进行更新- sudo apt-get update,请允许Outbound。

您可以使用AWS前端转到安全组 -> Outbound 允许出站流量。

请确保为您的AWS实例选择正确的组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接