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

Azure Linux虚拟机Psql与Windows虚拟机Pgadmin-4连接超时及401错误求助

问题排查与解决步骤

1. 确认PostgreSQL服务监听状态

  • 在Linux虚拟机上执行命令,检查5432端口是否正常监听所有地址:
    ss -tulpn | grep 5432
    
    输出应包含0.0.0.0:5432或:::5432,说明已正确监听所有IP。
  • 若未正确监听,重启PostgreSQL服务:
    sudo systemctl restart postgresql
    
    (注:部分发行版需指定版本,如postgresql-14.service)

2. 排查网络连通性

  • Azure网络安全组(NSG)验证:
    确认Linux虚拟机的NSG已添加入站规则,允许5432端口流量,源地址设为Windows虚拟机的私有IP或所在子网。
  • Linux本地防火墙检查:
    • 若使用ufw:
      sudo ufw status
      
      若启用状态,添加端口允许规则:
      sudo ufw allow 5432/tcp
      
    • 若使用firewalld:
      sudo firewall-cmd --add-port=5432/tcp --permanent
      sudo firewall-cmd --reload
      
  • Windows端连通性测试:
    打开PowerShell执行:
    Test-NetConnection <Linux_VM_IP> -Port 5432
    
    若TcpTestSucceeded为False,重点排查网络层面问题。

3. 解决PgAdmin 4的401认证错误

  • 重置PgAdmin登录凭据:
    关闭PgAdmin后,删除本地保存的服务器连接,重新创建连接时手动输入PostgreSQL的用户名(默认postgres)和对应密码,避免使用缓存的凭据。
  • 检查PgAdmin服务状态:
    在Windows服务管理器中找到pgAdmin 4服务,重启该服务后再尝试连接。
  • 验证PgAdmin配置(服务器模式):
    若PgAdmin以服务器模式运行,打开配置文件(路径示例:C:\Program Files\PostgreSQL\15\pgAdmin 4\web\config.py),确认SERVER_MODE = True,并检查用户账号配置是否正确。

4. 细化PostgreSQL配置检查

  • pg_hba.conf规则确认:
    确保配置文件中包含针对Windows虚拟机IP的规则,例如:
    host    all             all             <Windows_VM_IP>/32        scram-sha-256
    
    (替换<Windows_VM_IP>为实际IP,认证方法可根据PostgreSQL版本调整,如md5)
    修改后必须重启PostgreSQL服务生效。
  • 查看PostgreSQL日志:
    查看Linux虚拟机上的PostgreSQL日志(路径示例:/var/log/postgresql/postgresql-14-main.log),日志中会记录连接失败的具体原因(如认证失败、IP拒绝等),比PgAdmin日志更精准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:12:24