Azure PostgreSQL Flexi Server本地pgAdmin/PowerShell连接超时问题咨询
Azure PostgreSQL Flexi Server 连接超时问题排查方案
一、确认正确的公网IP
- ipconfig显示的大多是内网IP(如192.168.x.x、10.x.x.x),Azure防火墙需要的是你设备对外访问的公网IP,可通过以下PowerShell命令直接获取:
Invoke-RestMethod http://ipinfo.io/ip - 将获取到的公网IP添加到Azure PostgreSQL服务器的防火墙规则中,格式为
xxx.xxx.xxx.xxx/32(单个IP)。
二、检查Azure服务器网络配置
- 登录Azure Portal进入你的PostgreSQL Flexi Server:
- 确认连接方法为「公网访问(允许IP地址)」,若为VNet集成模式,本地不在该VNet内无法直接连接。
- 检查防火墙规则:确保添加的公网IP规则已启用,IP地址无输入错误,规则优先级设置合理。
- 无需开启「允许Azure服务和资源访问此服务器」(该选项针对Azure内部服务,本地连接不需要)。
三、排查公司网络限制
- 公司电脑的内网防火墙或网关可能拦截了5432端口的出站流量,用PowerShell测试端口连通性:
Test-NetConnection app-domain-name-non-prod-server.postgres.database.azure.com -Port 5432- 若结果显示
TcpTestSucceeded: False且PingSucceeded: False,大概率是公司网络封禁了该端口,需联系IT部门开放出站5432端口。
- 若结果显示
- 本地Windows防火墙可通过「高级设置」→「出站规则」检查是否有阻止PostgreSQL流量的规则,但公司电脑通常由IT管控,建议优先联系IT处理。
四、其他关键排查点
- 用户名格式错误:Azure PostgreSQL的登录用户名必须是
用户名@服务器名格式,你的命令需修正为:.\psql.exe -h app-domain-name-non-prod-server.postgres.database.azure.com -p 5432 -U dummyUser@app-domain-name-non-prod-server - 服务器状态:在Azure Portal确认服务器处于「运行中」状态,无停止或维护情况。
- ping丢包是正常现象:Azure PostgreSQL服务器默认禁用ICMP协议,ping结果不代表端口连通性,无需关注。
内容的提问来源于stack exchange,提问作者Siyamcela Nxuseka
相关产品推荐
相关产品推荐

