Azure网站配置私有网络后AzVPN用户访问异常,求排查方案
Azure Private Link + AzVPN 访问异常调试与方案验证
方案合理性验证
- 整体方向正确:通过禁用公网访问、配置Private Link将网站纳入VNet隔离,再用NSG限制流量来源,实现仅AzVPN用户访问的目标,符合安全隔离的设计逻辑
- 核心配置错误:使用
CorpNetPublic服务标签放行流量是逻辑偏差——该标签对应Azure服务向企业网络发起的出站流量,并非AzVPN用户接入后的源IP范围,无法正确识别VPN客户端的流量
调试步骤
1. 验证Private Link基础配置
- 确认Private Endpoint已成功关联目标VNet,且
privatelink.azurewebsites.net私有DNS Zone已绑定到该VNet - 在VNet内部署测试VM,直接访问网站私有IP,排查是否为网站本身或Private Link链路问题
- 检查AzVPN客户端的DNS解析:执行
nslookup adminuidev.azurewebsites.net,确认返回的是网站的私有IP而非公网IP
2. 排查NSG规则问题
- 检查规则优先级:确保允许
CorpNetPublic的规则没有被更高优先级的拒绝规则覆盖 - 临时替换源地址:将NSG入站规则的源改为你的AzVPN地址池(例如
10.20.0.0/24),测试连接是否恢复 - 启用NSG流日志:在Log Analytics中分析流量日志,查看连接AzVPN后,流量是否到达NSG、是否被拒绝,源IP是否符合预期
3. 验证AzVPN客户端配置
- 确认VPN连接状态:检查客户端是否成功获取内网IP,路由表中是否包含目标网站VNet的路由条目
- 排查客户端本地限制:关闭本地防火墙、代理软件,测试是否能正常访问
4. 检查App Service自身配置
- 确认网站的访问限制设置:仅开启
允许专用终结点流量,无额外的IP黑名单/白名单规则 - 查看App Service日志:在Azure Portal的App Service日志中,提取403和连接关闭的具体错误详情(如TLS握手失败、IP被拒绝等)
修复建议
- 修正NSG入站规则:将源地址改为AzVPN的地址池CIDR,若AzVPN接入的是同一VNet或对等VNet,可使用
AzureVirtualNetwork服务标签 - 完善DNS解析配置:确保AzVPN客户端能解析网站私有域名到私有IP,可通过VPN网关启用DNS转发,或在客户端手动配置私有DNS服务器
- 验证端到端路由:检查VPN网关的路由表,确保目标网站VNet的路由已正确传播到AzVPN客户端
- 逐步缩小测试范围:临时添加低优先级的
允许所有源NSG规则,确认连接正常后,再逐步收紧规则定位具体限制项
内容的提问来源于stack exchange,提问作者Chao
相关产品推荐
相关产品推荐

