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

AWS EC2 Ubuntu16.04实例Apache2网站无法访问排查求助

排查AWS EC2 Ubuntu 16.04上Apache2公网访问失败的问题

我来帮你一步步排查这个问题,这种情况通常是网络或本地配置的小疏漏,咱们逐个排除:

  • 确认Apache2是否正确监听80端口
    登录到EC2实例,执行命令:

    sudo netstat -tulpn | grep :80
    

    你需要看到输出里有apache2进程,并且监听的是0.0.0.0:80或者:::80(表示监听所有网卡)。如果只显示127.0.0.1:80,说明Apache只绑定了本地回环地址,公网无法访问,这时候需要检查Apache的配置文件(比如/etc/apache2/ports.conf),确保Listen 80没有绑定特定IP。

  • 检查Ubuntu本地防火墙(UFW)
    Ubuntu 16.04默认使用UFW防火墙,执行命令查看状态:

    sudo ufw status
    

    如果防火墙是开启状态,必须确保80/tcp(HTTP)规则是允许的。如果没有,执行sudo ufw allow 80/tcp添加规则,然后重启UFW:sudo ufw reload。

  • 验证EC2实例的网络属性

    • 确认实例是否分配了公网IP或弹性IP:在AWS控制台的EC2实例详情里,检查“公网IPv4地址”字段是否有值,如果为空,说明实例没有公网访问能力,需要分配弹性IP或者重启实例(如果是默认VPC下的实例,重启可能会自动分配临时公网IP)。
    • 确认你使用的DNS地址ec2-3-231-162-52.compute-1.amazonaws.com是否正确解析到实例的公网IP:在本地终端执行nslookup ec2-3-231-162-52.compute-1.amazonaws.com,看返回的IP是否和实例的公网IP一致。
  • 再次核对安全组规则

    • 确保安全组的入站规则里,有一条允许TCP协议、80端口、源为0.0.0.0/0(或你需要访问的IP范围)的规则。
    • 确认这个安全组已经关联到你的EC2实例:在实例详情的“安全组”标签里,检查是否是你配置的那个安全组。
  • 测试实例本地访问Apache
    在EC2实例上执行:

    curl http://localhost
    

    如果能返回Apache默认的HTML页面,说明服务本身没问题,问题出在网络层面;如果返回错误,说明Apache可能没正常启动,或者配置有误。可以用sudo systemctl status apache2查看服务状态,或者sudo apache2ctl configtest检查配置文件语法。

  • 查看Apache错误日志
    如果服务启动有问题,查看错误日志找线索:

    sudo tail -n 20 /var/log/apache2/error.log
    

    日志里会显示比如端口被占用、配置文件错误等具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:54:54