You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Terraform创建的AWS EC2实例无法连接互联网问题求助

EC2实例公网访问及网络连接故障排查求助

我用以下Terraform配置创建了一台AWS Linux EC2实例,关联默认VPC、默认公有子网和默认公有IGW。但现在遇到两个问题:

  • 访问实例公网URL时,Hello World网页无法打开
  • SSH登录实例后执行ping google.com操作失败

已尝试将用户数据脚本放入单独文件引用、更换AMI及数据脚本,均未解决问题,求指点解决方向。

Terraform配置代码

resource "aws_instance" "instance_1" {
  ami             = "ami-05548f9cecf47b442"
  instance_type   = "t2.micro"
  security_groups = [aws_security_group.instances.name]
  key_name        = var.ssh_key
  user_data       = <<-EOF
    #!/bin/bash
    yum update -y
    yum install -y httpd
    systemctl start httpd
    systemctl enable httpd
    echo "<h1>Hello World $(hostname -f)</h1>" > /var/www/html/index.html
    EOF
}

resource "aws_security_group" "instances" {
  name = var.instance_security_group
}

resource "aws_security_group_rule" "allow_http_inbound" {
  type              = "ingress"
  from_port         = 80
  to_port           = 80
  protocol          = "tcp"
  cidr_blocks       = ["0.0.0.0/0"]
  security_group_id = aws_security_group.instances.id
}

resource "aws_security_group_rule" "allow_ssh_inbound" {
  type              = "ingress"
  from_port         = 22
  to_port           = 22
  protocol          = "tcp"
  cidr_blocks       = ["0.0.0.0/0"]
  security_group_id = aws_security_group.instances.id
}

已尝试的排查操作

  • 将用户数据脚本放入单独文件并引用(无效)
  • 使用其他AMI及数据脚本(无效)

排查方向建议

1. 补充安全组出站规则

当前配置仅设置了入站规则,未允许任何出站流量,这会直接导致实例无法访问外部网络(如yum更新、ping外网),也会影响服务依赖的外部请求。添加以下出站规则:

resource "aws_security_group_rule" "allow_all_outbound" {
  type              = "egress"
  from_port         = 0
  to_port           = 0
  protocol          = "-1"
  cidr_blocks       = ["0.0.0.0/0"]
  security_group_id = aws_security_group.instances.id
}

2. 确认实例公有IP状态

  • 登录AWS控制台查看实例详情,确认"公有IPv4地址"已分配;默认公有子网中的实例通常自动分配,但如果未分配,可尝试重启实例,或手动绑定弹性IP
  • 检查实例的"网络接口"详情,确认公有IP已关联

3. 验证子网路由表配置

进入AWS控制台的VPC服务,找到实例所在公有子网对应的路由表,确认存在目标为0.0.0.0/0、下一跳为默认IGW的路由条目,这条路由是实例访问公网的关键

4. 检查用户数据执行日志

SSH登录实例后,查看用户数据的执行日志,确认脚本是否正常执行:

cat /var/log/cloud-init-output.log

重点查看yum安装、httpd启动步骤是否有报错(如权限不足、网络超时导致包无法下载等)

5. 检查网络ACL配置

默认VPC的网络ACL通常允许所有入站和出站流量,但如果有自定义修改,需确认:

  • 入站规则允许80、22端口的流量,同时允许Ephemeral端口范围(通常1024-65535)的响应流量
  • 出站规则允许所有必要的流量(如80、443用于yum更新,ICMP用于ping)

内容的提问来源于stack exchange,提问作者GM_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:06:19