通过API Management远程调试Azure App Service的配置问题
APIM 转发远程调试请求到关联 App Service 的配置要求
要实现该需求必须开启对应配置,核心配置项如下:
- 在 APIM 入站处理规则中添加对应调试端口的允许规则与转发策略:常用调试端口包括 .NET 栈的 4022/4024、Node.js 栈的 9229、Python 栈的 5678 等,需额外配置策略将对应端口的请求直接转发到后端 App Service 的调试端口,不要走默认的 80/443 路由匹配规则。
- 开启 App Service 侧的远程调试开关:在 App Service 配置页找到「远程调试」选项,开启后选择对应的运行时版本,同时将 APIM 的所有出站 IP 加入 App Service 的网络访问白名单,避免 App Service 内置防火墙拦截请求。
- 放开 APIM 层面的端口限制:如果使用 VNet 注入模式的 APIM,需要在 VNet 关联的 NSG 规则中放行对应调试端口的入站、出站流量;如果是公共层 APIM,需确认对应端口没有被 APIM 内置安全规则拦截。
端口显示 Filtered 状态的原因
你用 portqry 检测到端口为 Filtered 而非 Listening,通常和配置遗漏直接相关,常见原因如下:
- 你直接扫描了 App Service 的公网 IP 端口:App Service 的调试端口默认不对公网开放,只接受白名单内的 IP 访问,未放通本地 IP 的情况下直接扫描就会返回 Filtered,建议扫描 APIM 的公网端口验证连通性,扫描命令参考
portqry.exe -n [你的APIM域名] -e [调试端口号]。 - APIM 侧未开放对应端口的入站规则:公网到 APIM 对应端口的流量直接被拦截,portqry 无法收到服务端响应就会返回 Filtered 状态。
- 本地网络或运营商拦截了对应端口的出站请求,也会导致扫描结果为 Filtered。
验证配置是否生效的方法:先在 APIM 的测试控制台发送对应端口的探测请求,确认请求可以正常转发到 App Service 后,再从本地发起调试请求验证连通性。
内容的提问来源于stack exchange,提问作者Marc George
相关产品推荐
相关产品推荐

