创建Azure SQL私有端点后同子网VM仍无法通过SSMS连接
问题排查与解决方案
核心问题分析
你的nslookup返回公网SQL网关地址,说明域名解析未指向私有端点,这是连接被拒绝的根本原因(公网访问已禁用)。以下是针对性排查步骤:
1. 验证VM的DNS服务器配置
- 执行命令查看VM当前DNS设置:
- Windows:
ipconfig /all - Linux:
cat /etc/resolv.conf
- Windows:
- 确保DNS服务器不是公共DNS(如8.8.8.8),如果用自定义DNS,需满足:
- 自定义DNS能将
privatelink.database.windows.net的请求转发到Azure私有DNS区域; - 或自定义DNS中已添加
dbserver.privatelink.database.windows.net对应私有端点IP的A记录。
- 自定义DNS能将
- 优先使用Azure默认DNS(168.63.129.16),它会自动处理私有链接的域名解析。
2. 检查私有DNS区域配置
- 确认私有DNS区域名称为
privatelink.database.windows.net(而非database.windows.net),这是Azure SQL私有端点要求的标准区域名称。 - 在VM上执行
nslookup dbserver.privatelink.database.windows.net,若返回私有端点IP,说明区域记录正常;若仍返回公网地址,可尝试删除并重新创建VNet与私有DNS区域的链接(即使状态显示正常)。
3. 验证VNet的私有链接解析设置
- 确保VNet的“专用链接集成”已启用对Azure SQL的解析支持;
- 若VNet使用自定义DNS,需在DNS服务器上配置条件转发规则,将
privatelink.database.windows.net指向Azure私有DNS区域的IP地址。
4. 检查网络连通性与私有端点状态
- 测试VM到私有端点的1433端口连通性:
- Windows:
Test-NetConnection dbserver.database.windows.net -Port 1433 - Linux:
nc -zv dbserver.database.windows.net 1433
- Windows:
- 确认私有端点状态为“已批准”,关联子网正确,且NSG未阻止VM子网到私有端点子网的1433端口入站流量。
- 核对私有DNS区域中的A记录IP与私有端点网卡的IP完全一致。
5. SSMS连接的额外注意事项
- 直接使用私有端点IP连接失败是预期行为:SQL Server证书绑定的是
dbserver.database.windows.net域名,IP连接会触发证书名称不匹配错误,即使勾选“信任服务器证书”也无法绕过。 - 若启用加密连接报错,可先确保解析正常后再尝试,加密连接是Azure SQL的默认要求,建议最终启用,报错时可排查证书信任问题。
内容的提问来源于stack exchange,提问作者Mike Fleming
相关产品推荐
相关产品推荐

