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

使用Terraform创建的AWS EC2实例访问公网IP提示连接被拒绝

问题根因

  • 安全组SSH端口配置错误:当前配置开放的是2端口,SSH默认端口为22,该问题会导致你无法远程登陆实例排查问题
  • Apache服务未正确安装启动:user_data 中执行apt install apache2时未添加-y参数,安装过程会卡在交互确认环节,导致Apache没有安装成功,没有进程监听80端口,因此访问公网IP会提示连接被拒绝
  • 没有显式启用Apache服务:即使安装完成,部分Ubuntu镜像默认不会自动启动Apache,建议在user_data中显式添加启动和开机自启的命令

修复方案

1. 修复安全组配置

把aws_security_group.allow_web资源里的SSH入站规则修改为:

ingress {
    description      = "SSH"
    from_port        = 22
    to_port          = 22
    protocol         = "tcp"
    cidr_blocks      = ["0.0.0.0/0"]
}

2. 修复user_data脚本

修改aws_instance.web-server-instance里的user_data为:

user_data = <<-EOF
    #! /bin/bash
    sudo apt update -y 
    sudo apt install apache2 -y
    sudo systemctl start apache2
    sudo systemctl enable apache2
    sudo bash -c 'echo your very first web server > /var/www/html/index.html'
EOF

额外优化建议

生产环境不建议直接在Terraform配置文件里明文写AWS访问密钥,可以通过环境变量、AWS本地配置文件或者IAM角色的方式传递,避免密钥泄露风险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:48:02