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

无法在EC2实例上访问pgAdmin容器的问题求助

排查EC2上pgAdmin4容器无法访问的问题

以下是针对你遇到的问题的具体排查和解决步骤:

1. 修正安全组入站规则

你当前设置的安全组规则是允许EC2自身公网IP访问所有端口,这是错误的配置。需要调整为允许你本地机器的公网IP访问80端口:

  • 进入EC2控制台,找到实例关联的安全组
  • 修改入站规则:添加TCP 80端口,源地址设置为你本地的公网IP(可在本地执行curl ifconfig.me获取)
  • 测试场景下可暂时将源设为0.0.0.0/0(生产环境严禁使用此配置)

2. 检查EC2实例的系统防火墙

EC2实例自带的防火墙(如firewalld或iptables)可能拦截了80端口流量:

  • 若使用firewalld:
    sudo firewall-cmd --list-all
    # 若80端口未开放,执行:
    sudo firewall-cmd --add-port=80/tcp --permanent
    sudo firewall-cmd --reload
    
  • 若使用iptables:
    sudo iptables -L
    # 确保存在允许80端口入站的规则,若无则添加:
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    

3. 验证容器内部服务状态

确认pgAdmin4在容器内正常启动并监听80端口:

  • 查看容器启动日志,排查是否有报错:
    docker logs <你的容器ID>
    
  • 进入容器检查端口监听情况:
    docker exec -it <你的容器ID> bash
    # 容器内无netstat则先安装:
    apt update && apt install -y net-tools
    netstat -tulpn | grep 80
    
    需确认输出中存在0.0.0.0:80的监听记录

4. 检查子网网络ACL

公有子网的网络ACL可能限制了流量:

  • 进入VPC控制台,找到对应子网的网络ACL
  • 确认入站规则允许TCP 80端口(源地址为你的IP或0.0.0.0/0)
  • 确认出站规则允许TCP回包流量(默认规则通常允许,若修改过需核查)

5. 本地curl失败的额外排查

若EC2本地执行curl localhost失败,需检查端口映射是否正常:

  • 查看容器端口映射状态:
    docker port <你的容器ID>
    
    确认输出为80/tcp -> 0.0.0.0:80
  • 检查EC2本地是否有其他进程占用80端口:
    sudo lsof -i :80
    
    若有占用,停止该进程或修改Docker映射端口(如改为-p 8080:80)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:55:12