Azure Windows Server 2022虚拟机PostgreSQL远程连接失败求助
Azure Windows Server 2022上PostgreSQL远程连接故障排查补充配置
以下是你可能遗漏的关键配置项,按优先级排查:
Windows系统防火墙入站规则
Azure VM的Windows Defender防火墙默认会拦截外部端口访问,需手动放行PostgreSQL端口:- 打开「Windows Defender防火墙」→「高级设置」→「入站规则」
- 新建规则:选择「端口」类型,指定TCP端口(默认5432,需和Azure门户开放的端口一致),允许连接并应用到所有网络配置文件。
PostgreSQL端口绑定与占用检查
- 确认
postgresql.conf中的port参数和你开放的端口完全匹配; - 执行命令
netstat -ano | findstr :5432(替换为你的端口),验证PostgreSQL进程(对应PID)确实在监听该端口,避免端口被其他程序占用。
- 确认
Azure网络安全组(NSG)出站规则
虽然你开放了入站端口,但如果NSG设置了严格的出站规则,可能会阻断PostgreSQL的响应包,需确保出站规则允许5432端口的流量返回。PostgreSQL用户远程访问权限
确保用于远程连接的PostgreSQL用户没有被限制为本地访问,可通过以下SQL语句确认或修改:-- 查看用户连接权限 SELECT usename, connlimit FROM pg_user; -- 创建允许远程访问的用户(如果需要) CREATE USER your_username WITH PASSWORD 'your_password' LOGIN;本地网络连通性测试
在本地PC执行PowerShell命令Test-NetConnection <VM公共IP> -Port 5432,或使用telnet <VM公共IP> 5432测试端口连通性:- 如果测试失败,优先排查Azure NSG、Windows防火墙的网络规则;
- 如果测试成功但PostgreSQL连接失败,再回到
pg_hba.conf和用户权限配置排查。
内容的提问来源于stack exchange,提问作者Nolan
相关产品推荐
相关产品推荐

