通过Virtual Network Gateway连接Azure SQL:是否需本地hosts记录?
问题解答:是否必须添加hosts文件记录连接带私有端点的Azure SQL?
结论:不需要手动添加hosts文件记录,当前的依赖是因为你的DNS配置存在遗漏
私有端点的正确解析逻辑
当你为Azure SQL配置私有端点并关联privatelink.database.windows.net私有DNS区域后,正常的解析流程是:
- 客户端发起
myazuredb.database.windows.net的DNS查询 - 公共DNS服务器会返回一个CNAME记录,将该域名重定向到
myazuredb.privatelink.database.windows.net - 你的私有DNS区域中存在的A记录,会把
myazuredb.privatelink.database.windows.net解析到私有IP10.0.1.4
你当前依赖hosts文件的原因
你需要手动添加hosts记录,是因为你的笔记本通过VPN连接到vnet后,无法触发上述的CNAME重定向+私有DNS解析流程。常见的原因包括:
- 本地DNS服务器没有配置条件转发规则,无法将
privatelink.database.windows.net的查询请求转发到Azure私有DNS服务器 - VPN连接分配的DNS服务器不是能访问Azure私有DNS区域的服务器,导致私有域名无法被解析
修正配置的步骤
- 配置DNS条件转发:在你的本地DNS服务器上添加条件转发规则,将
privatelink.database.windows.net的查询转发到Azure的DNS服务器地址(通常是168.63.129.16,或者你的vnet自定义DNS服务器) - 检查VPN DNS设置:如果你使用的是Azure VPN网关,确保VPN客户端获取到的DNS服务器地址是能访问私有DNS区域的服务器;如果是点到点VPN,手动指定Azure DNS服务器地址
- 验证解析:删除hosts文件中的记录后,在笔记本上执行命令:
如果返回结果包含私有IPnslookup myazuredb.database.windows.net10.0.1.4,说明配置已正确;如果返回公共IP,说明DNS转发仍未生效
内容的提问来源于stack exchange,提问作者Andrew Duffy
相关产品推荐
相关产品推荐

