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

如何实现Power BI通过SSH隧道连接EC2上Docker部署的PostgreSQL实例

解决Power BI连接EC2 Docker中PostgreSQL的SSH隧道问题

办法1:本地通过SSH命令建立端口转发(推荐)

这是最安全且无需额外工具的方案,Windows 10/11、Mac、Linux系统默认支持SSH命令。

  • 步骤1:确认EC2上的Docker容器已将PostgreSQL端口映射到EC2主机,比如启动容器时执行过 docker run -p 5432:5432 ...,把容器的5432端口绑定到EC2的5432端口。
  • 步骤2:在本地终端/命令提示符里执行隧道命令:
    ssh -i "/path/to/your-key.pem" -L 5432:localhost:5432 ec2-user@<EC2的公网IP或域名>
    
    说明:
    • -i 指定你的PEM密钥文件路径
    • -L 5432:localhost:5432 把本地5432端口转发到EC2主机的5432端口(即Docker内的PostgreSQL端口)
    • ec2-user 是EC2默认用户名,若你修改过则用对应名称
  • 步骤3:保持终端窗口开启(关闭会导致隧道断开),打开Power BI的PostgreSQL连接对话框:
    • 服务器填 localhost,端口填 5432
    • 填入PostgreSQL对应的数据库名、用户名、密码,正常连接即可

办法2:用PuTTY建立SSH隧道(适合旧版Windows)

如果你的Windows版本没有自带SSH命令,可以用PuTTY工具:

  • 步骤1:把PEM文件转换成PuTTY支持的PPK格式:打开PuTTYgen,点击Load选择PEM文件,再点击Save private key保存为PPK文件。
  • 步骤2:打开PuTTY,在Session页面填写EC2公网IP,端口选22,连接类型选SSH。
  • 步骤3:左侧导航到Connection > SSH > Auth,点击Browse选择刚才生成的PPK文件。
  • 步骤4:左侧导航到Connection > SSH > Tunnels,Source port填5432,Destination填 localhost:5432,点击Add,回到Session页面点击Open建立连接。
  • 步骤5:保持PuTTY窗口开启,Power BI连接时同样填localhost:5432即可。

办法3:直接开放PostgreSQL端口(仅临时测试用)

如果只是临时测试,可跳过SSH隧道直接让Power BI访问,但需严格注意安全:

  • 步骤1:修改EC2安全组,添加一条入站规则,允许Power BI所在机器的公网IP访问5432端口。
  • 步骤2:修改Docker容器内的PostgreSQL配置:
    • 编辑postgresql.conf,将listen_addresses改为*(允许所有IP访问)
    • 编辑pg_hba.conf,添加一行host all all <Power BI所在IP>/32 md5(允许指定IP用密码登录)
  • 步骤3:重启PostgreSQL容器,Power BI直接填写EC2公网IP和5432端口连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:52:39