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

配置私有端点的Azure App Service自托管代理部署SCM访问403问题

问题解决:自托管代理部署带私有端点的Azure App Service报403 Forbidden

问题复现

使用自托管代理向配置了私有端点的Azure App Service部署时,流水线抛出ERROR_COULD_NOT_CONNECT_TO_REMOTESVC错误,远程服务器返回403 Forbidden。具体表现:

  • 目标是结合私有端点与带IP限制的SCM站点公网访问
  • 已尝试将服务标签、代理IP/子网加入SCM站点公网访问白名单,本地电脑配置IP后可正常访问,但自托管代理仍无法访问
  • 即使取消SCM站点的公网访问限制,代理依然报错;仅删除App Service的私有端点后,部署恢复正常

核心原因

当App Service配置私有端点后,SCM站点(Kudu)的流量路由逻辑会发生变化:

  • 私有端点启用后,Azure会强制将SCM站点的域名解析指向私有IP,即使你开启了SCM的公网访问,公网来的请求也会被拦截(路由优先走私有链路)
  • 自托管代理如果不在私有端点所在的虚拟网络内,即使IP在白名单里,请求也会因为无法到达私有IP而被返回403;取消公网限制无效的原因是路由规则优先级高于公网访问设置

解决方案

根据你的需求(私有端点+受限SCM公网访问),可以按以下两种路径处理:

路径1:让自托管代理通过公网正常访问SCM站点

  1. 确保SCM站点的公网访问已启用:进入App Service -> 配置 -> 常规设置,确认“SCM站点公网访问”设为“启用”
  2. 添加关键应用设置:在App Service的配置 -> 应用设置中,新增WEBSITE_DNS_SERVER,值设为168.63.129.16(Azure公共DNS服务器,强制SCM域名解析为公网IP,绕过私有端点的路由拦截)
  3. 重新配置SCM访问限制:在App Service -> 网络 -> 访问限制 -> 添加规则,将自托管代理的公网IP/子网加入白名单,优先级设为最高
  4. 在代理服务器上验证:执行curl -v https://<你的应用名>.scm.azurewebsites.net/api/,确认返回200 OK

路径2:让自托管代理通过私有网络访问SCM站点

  1. 将自托管代理部署到App Service私有端点所在的虚拟网络,或通过VPN/ExpressRoute将代理所在网络与该虚拟网络打通
  2. 为SCM站点配置私有端点:进入App Service -> 网络 -> 私有端点连接 -> 添加,选择目标子资源为“SCM”,完成私有端点创建
  3. 配置NSG规则:确保代理所在子网的NSG允许出站访问443端口到App Service私有端点的IP范围
  4. 验证私有DNS解析:在代理服务器上ping <你的应用名>.scm.azurewebsites.net,确认解析到私有IP

额外排查步骤

  • 查看App Service日志:进入“诊断和解决问题”->“可用性和性能”->“访问限制”,查看具体的403拦截日志,确认是IP拦截还是路由问题
  • 检查代理网络:确认代理服务器没有走其他代理或防火墙,导致请求IP与白名单不符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:03:24