同虚拟网络下App Service通过专用DNS访问Azure VM失败及私有IP连通问题
针对App Service与VM同VNet但DNS解析+私有IP访问失败的排查方案
看起来你遇到的是VNet Integration预览版下的双重问题:DNS解析失效,以及私有IP连通性异常(公网IP正常)。我给你梳理几个关键排查点,按顺序来试:
一、先解决DNS解析问题
- 确认App Service是否继承了VNet的DNS设置
虽然你的VNet已经关联了专用DNS区域,但App Service的VNet Integration(预览版)默认可能不会自动继承VNet的DNS配置。去App Service的「网络」→「VNet集成」设置里,检查是否勾选了「使用虚拟网络的DNS服务器」选项。如果没开,开启后重启App Service再用nameresolver.exe myvm1.priv.zone测试,同时注意看命令返回的DNS服务器地址是不是Azure的默认DNS(比如168.63.129.16),如果是公共DNS的话说明配置没生效。 - 验证专用DNS区域的记录和关联状态
去专用DNS区域里确认myvm1的A记录是否存在,并且对应的私有IP是正确的。另外检查VNet和专用DNS区域的关联类型是「自动注册」(因为你的VM是自动注册的),关联状态显示「已成功」,确保没有关联失败的情况。
二、排查私有IP访问失败的问题(公网IP正常说明VM服务本身没问题)
- 检查VM本地防火墙规则
即使VM子网的NSG允许所有流量,VM操作系统的防火墙(比如Windows Defender防火墙)可能默认拦截了来自App Service集成子网的流量。登录VM,添加入站规则,允许来自App Service集成子网的IP段(比如10.1.x.0/24)的所有TCP/UDP流量,然后测试连通性。 - 确认App Service集成子网的委托设置
预览版的VNet Integration要求集成的子网必须委托给Microsoft.Web/serverFarms。去VNet的子网设置里,找到App Service集成的那个子网,查看「子网委托」是否正确配置了这个服务主体。如果没委托,配置后重启App Service再试。 - 检查路由表配置
查看App Service集成子网关联的路由表,有没有自定义路由规则把到VM私有IP段的流量导向了其他地方(比如NVA或者互联网)。默认情况下,同一VNet内的子网互通应该有系统路由,但如果有自定义路由,确保存在一条目标为VM子网IP段、下一跳为「虚拟网络」的路由规则。 - 用App Service内置工具做连通性测试
在App Service控制台里用tcpping 10.1.x.x命令测试,看看输出是「超时」还是「连接拒绝」:- 超时:大概率是NSG或路由问题,导致流量没到达VM;
- 连接拒绝:说明流量到了VM,但被VM本地防火墙或服务端口拦截,检查VM的服务是否监听私有IP,以及防火墙规则。
内容的提问来源于stack exchange,提问作者Rambalac
相关产品推荐
相关产品推荐

