Azure Linux虚拟机访问带私有端点+公网访问的Key Vault时DNS解析失败
解决思路
1. 排查VM的DNS配置与解析行为
- 在VM内执行
nslookup <你的Key Vault名称>.vault.azure.net,观察返回结果:- 如果返回无解析结果或错误,说明DNS请求未到达正确的解析服务器;
- 如果返回公网IP而非私有IP,说明VM的DNS查询未触发Key Vault的私有DNS解析逻辑。
- 直接测试私有链接域名解析:执行
nslookup <你的Key Vault名称>.privatelink.vaultcore.azure.net,若无法返回私有IP,大概率是私有DNS区域关联或记录同步问题。
2. 验证私有DNS区域与VM所在VNet的关联
- 登录Azure门户,找到Key Vault对应的私有DNS区域(通常为
privatelink.vaultcore.azure.net); - 检查该区域的虚拟网络链接列表,确认VM所在的VNet已添加并处于已启用状态。若未关联,添加关联后等待5-10分钟再测试解析。
3. 检查VM的网络层DNS拦截
- 查看VM绑定的NSG(网络安全组)出站规则,确认未阻止UDP 53端口(DNS默认端口)的流量;
- 检查VM内部防火墙:
- Linux:执行
iptables -L -n查看是否有拦截DNS的规则,或临时关闭ufw/firewalld测试; - Windows:通过防火墙高级设置确认出站DNS请求未被阻止。
- Linux:执行
4. 确认私有端点状态与配置
- 查看Key Vault的私有端点资源,确认其状态为已批准,且关联的VNet与VM所在VNet一致;
- 检查私有端点的DNS配置,确认已自动生成对应Key Vault的A记录(指向私有IP)。
5. 自定义DNS服务器的额外排查
- 如果VM使用自定义DNS服务器而非Azure默认DNS(168.63.129.16),需确保:
- 自定义DNS服务器配置了对
privatelink.vaultcore.azure.net区域的转发(指向Azure DNS); - 或在自定义DNS服务器上手动添加了Key Vault私有链接域名的A记录(对应私有IP)。
- 自定义DNS服务器配置了对
6. 公网访问的补充验证
- 若VM计划通过公网访问Key Vault,需确认Key Vault防火墙规则已添加VM的公网IP地址(或所在公网IP段);
- 此时若DNS解析到公网IP但访问失败,可进一步排查防火墙规则是否生效(比如用
curl -v <你的Key Vault名称>.vault.azure.net查看返回的错误码)。
内容的提问来源于stack exchange,提问作者TGY
相关产品推荐
相关产品推荐

