You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Azure DevOps部署至虚拟网络内无公网访问的App Service失败排查

解决Azure自托管代理部署至无公网App Service的403 IP禁止问题

以下是针对你的问题的具体解决思路:

  • 检查App Service及SCM站点的访问限制
    部署操作依赖Kudu(SCM)站点完成,需同时确认主站点和SCM站点的访问规则:

    • 进入App Service的「网络」->「访问限制」,确认已添加代理VM的私有IP到允许列表,或设置为允许整个VNet内的流量访问。
    • 切换到「SCM站点的访问限制」标签,重复上述检查,确保SCM站点也允许代理VM的IP访问。
  • 验证VNet集成配置

    • 确认App Service已成功集成到代理VM所在的VNet,在「网络」->「VNet集成」中查看状态为「已集成」,且子网正确。
    • 检查代理VM所在子网是否启用了Microsoft.Web服务端点,或是否配置了App Service的专用端点(专用端点会自动关联DNS解析)。
  • 修复DNS解析问题
    手动hosts映射无效大概率是因为部署任务优先访问SCM域名,需补充映射:

    • 在代理VM的/etc/hosts中添加两条映射:
      privateAppServiceIp myapp.azurewebsites.net
      privateAppServiceIp myapp.scm.azurewebsites.net
      
    • 更可靠的方式是配置Azure专用DNS区域:创建privatelink.azurewebsites.net专用DNS区域并关联到代理VM所在VNet,这样VM会自动解析App Service和SCM的私有IP,无需手动维护hosts。
  • 测试网络连通性
    在代理VM上执行以下命令验证:

    • 测试DNS解析是否返回私有IP:
      nslookup myapp.azurewebsites.net
      nslookup myapp.scm.azurewebsites.net
      
    • 测试HTTP访问是否正常:
      curl -v https://myapp.scm.azurewebsites.net
      
      如果返回私有IP但仍403,说明是访问限制配置问题;如果返回公网IP,说明DNS解析未生效。
  • 检查Azure DevOps部署任务配置

    • 使用「Azure App Service Deploy」任务时,确认是否启用了「使用专用网络连接」相关选项(部分任务版本支持通过私有端点访问)。
    • 避免使用公网相关的部署参数,确保任务优先使用VNet内的私有访问路径。

内容的提问来源于stack exchange,提问作者AnotherGeek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:35:17