如何将PGAdmin 4连接到Azure虚拟网络中的PostgreSQL灵活服务器
解决VNet集成Azure PostgreSQL灵活服务器本地访问DNS解析问题
方案1:Azure Bastion端口转发(推荐,无需本地VPN)
- 在PostgreSQL所属VNet内部署Azure Bastion主机
- 进入Azure Portal的Bastion连接页面,选择SSH模式,目标选VNet内的Linux虚拟机(无则临时创建小规格实例)
- 建立Bastion连接后,在虚拟机终端执行端口转发命令:
ssh -L 5432:<PostgreSQL服务器FQDN>:5432 <虚拟机用户名>@<虚拟机私有IP> - 本地PGAdmin/Azure Data Studio连接时,主机填
localhost,端口5432,凭据用PostgreSQL的管理员账号和密码
方案2:点到站点VPN连接本地与Azure VNet
- 在Azure Portal创建VPN网关,配置点到站点(P2S)VPN,选择适配本地设备的隧道协议(如OpenVPN)
- 下载VPN客户端配置包,在办公室电脑安装并连接到Azure VNet
- 连接成功后,本地可直接解析PostgreSQL的FQDN,正常填写服务器信息即可连接
方案3:Azure Cloud Shell临时访问
- 打开Azure Portal顶部的Cloud Shell,选择Bash环境
- 安装psql客户端:
sudo apt-get update && sudo apt-get install postgresql-client -y - 用psql连接服务器:
psql -h <PostgreSQL服务器FQDN> -U <管理员用户名> -d <数据库名> - 如需可视化界面,在Cloud Shell启动PGAdmin容器:
docker run -p 54321:80 -e PGADMIN_DEFAULT_EMAIL=admin@example.com -e PGADMIN_DEFAULT_PASSWORD=yourpassword dpage/pgadmin4
随后通过Cloud Shell的「Web Preview」功能打开端口54321,即可用PGAdmin界面连接
关键排查点
- 确认PostgreSQL的私有DNS区域已正确关联到目标VNet,避免VNet内部解析失败
- 检查VPN连接是否成功分配VNet内IP,验证本地路由是否指向Azure
- 在VNet内虚拟机执行
nslookup <PostgreSQL服务器FQDN>,确认能解析到私有IP,对比本地执行结果验证DNS问题
内容的提问来源于stack exchange,提问作者Monsieur Mark
相关产品推荐
相关产品推荐

