Azure SQL Database私有链接无法通过IP连接的问题及DNS咨询
问题解答
一、无法通过私有IP连接Azure SQL Database的原因
- Azure SQL Database的身份验证与服务器FQDN绑定,登录请求中的服务器名称必须与SQL服务器的注册名称(即
example.database.windows.net这类FQDN)完全匹配。直接使用私有IP时,登录上下文不匹配,会触发Cannot open Server "10.231.1.5" requested by login的认证失败错误。 - SQL Database使用的TLS证书基于FQDN颁发,用私有IP连接会导致证书名称校验失败;即便跳过证书校验,身份验证环节仍会因服务器名称不匹配而无法通过。
- 私有链接仅负责将SQL DB的网络访问路由到私有VNet,并未改变SQL DB本身的身份验证和服务发现机制,必须通过FQDN完成访问流程。
二、P2S VPN场景下的配置方案与DNS最佳实践
能否仅通过私有IP访问Azure SQL DB?
不行。Azure SQL Database的设计依赖FQDN完成身份验证、证书校验和服务路由,无法直接通过私有IP建立有效连接。但可以通过DNS配置让FQDN解析到私有IP,同时彻底阻断公网访问,实现"仅通过私有链路连接"的需求。
DNS区域与本地关联的最佳实践
配置Azure专用DNS区域
- 在Azure中创建专用DNS区域
privatelink.database.windows.net,将SQL DB私有链接对应的A记录(例如example.privatelink.database.windows.net指向私有IP10.231.1.5)添加到该区域。 - 将该专用DNS区域链接到承载私有链接和P2S VPN的Azure虚拟网络,确保VNet内的资源(包括P2S客户端)能自动解析FQDN到私有IP。
- 在Azure中创建专用DNS区域
本地DNS条件转发配置
- 在本地DNS服务器上创建条件转发规则,将针对
privatelink.database.windows.net域名的查询请求转发到Azure DNS服务器(可使用Azure默认私有DNS地址168.63.129.16,或VNet的自定义DNS服务器地址)。 - 确保本地客户端的DNS服务器设置指向配置了条件转发的本地DNS,让本地发起的SQL DB FQDN查询被转发到Azure,解析到私有IP而非公网IP。
- 在本地DNS服务器上创建条件转发规则,将针对
彻底阻断公网访问
- 在Azure SQL服务器的配置中,将「允许公用网络访问」设置为「否」,同时清空防火墙规则中的所有公网IP范围,强制所有连接必须通过私有链路进行。
内容的提问来源于stack exchange,提问作者Ni9e
相关产品推荐
相关产品推荐

