【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:56
问题描述
使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的。在虚拟网络中,启用网络安全组(NSG:Network Security Group)来控制出站,入站的端口,我们可以形象的把它比喻成一道门,需要满足条件的流量才能通过这道安全的大门。
通过安全大门以后,我们就需要有路,才能达到目的。而默认的网络路径由Azure的骨干网络控制,如果需要通过公司自己的防火墙(Azure Firewall或企业自己的防火墙)。在虚拟网络中,通过路由表(Route Table)来指定下一跳(Next Pod),通过使用0.0.0.0/0的配置方式(UDRs:user-defined routes),把虚拟网络中的所有流量都导入并经过防火墙。实现企业级的安全保护。
以上两句总结起来就是:NSG是门,UDR是路。解决方案架构图为:

但是,在搭建APIM VNET时候,却遇见了各种各样的错误。
1)因为NSG的缘故,必须的端口不通。导致APIM的网络连接状态“Network connectivity status”页面中状态显示为 Error

2)因为配置了自定义路由(UDR), 导致了APIM页面中的APIs,Repository等页面错误,且门户一直弹出Failed to connect to management endpoint错误消息

首先:以上的两个问题,都可以在“ 如何将 Azure API 管理与虚拟网络配合使用:常见网络配置问题 ”一文中找到答案。
问题一端口问题:添加上文档中所列出的所有必要端口,就可以实现网络连接状态全部Success的状态。
配置完成NSG后,一定要记住,在APIM中去Apply Network Configration,以实现网络配置双边同步。

问题二自定义路由问题:情况要复杂一些。需要开启服务终结点,在路由表中放行所在中国区的IP地址(控制平面 IP 地址)
使用 Express Route 或网络虚拟设备强制隧道流量发往本地防火墙:客户的常用配置是定义自己的默认路由 (0.0.0.0/0),强制来自 API 管理所委托子网的所有流量流经本地防火墙或流向网络虚拟设备。 此流量流一定会中断与 Azure API 管理的连接,因为出站流量会在本地被阻止,或者通过“网络地址转换”功能发送到不再与各种 Azure 终结点一起工作的一组无法识别的地址。
此解决方案要求执行以下三项操作:
第一项:在部署 API 管理服务的子网上启用服务终结点。 需为 Azure SQL、Azure 存储、Azure 事件中心和 Azure 服务总线启用服务终结点。 直接从 API 管理委托的子网启用这些服务的终结点可以让它们使用 Azure 主干网络,为服务流量提供优化的路由。 如果将服务终结点与强制隧道 API 管理配合使用,则不会将上述 Azure 服务流量进行强制隧道传输。 其他 API 管理服务依赖项流量会通过强制隧道重定向,不能丢失,否则 API 管理服务会功能失常。

第二项:所有控制平面流量(从 Internet 到 API 管理服务的管理终结点)都会通过特定的一组由 API 管理托管的入站 IP 进行路由。 当流量被强制进行隧道传输时,响应不会对称地映射回这些入站源 IP。 为了克服此限制,我们需要添加以下用户定义的路由 (UDR),通过将这些主机路由的目标设置为“Internet”来将流量传回 Azure。 用于控制平面流量的入站 IP 集是记录在案的控制平面 IP 地址

第三项:对于被强制进行隧道传输的其他 API 管理服务依赖项,应该有一种方法来解析主机名并访问该终结点。 其中包括:
- 指标和运行状况监视:到 Azure 监视终结点的出站网络连接,可在内网中解析,这些 URL 在 AzureMonitor 服务标记下表示,用于网络安全组。
- mooncake.warmpath.chinacloudapi.cn
- global.prod.microsoftmetrics.com(新增)
- shoebox2.prod.microsoftmetrics.com(新增)
- shoebox2-red.prod.microsoftmetrics.com
- shoebox2-black.prod.microsoftmetrics.com
- shoebox2-red.shoebox2.metrics.nsatc.net
- shoebox2-black.shoebox2.metrics.nsatc.net
- prod3.prod.microsoftmetrics.com(新增)
- prod3-red.prod.microsoftmetrics.com
- prod5.prod.microsoftmetrics.com
- prod5-black.prod.microsoftmetrics.com
- prod5-red.prod.microsoftmetrics.com
- gcs.prod.warm.ingestion.monitoring.azure.cn
dc.services.visualstudio.comsmtpi-co1.msn.comsmtpi-ch1.msn.comsmtpi-db3.msn.comsmtpi-sin.msn.comies.global.microsoft.comclient.hip.live.compartner.hip.live.com
问题解决
对比NSG列表,添加缺少的端口。特别是:1433,5671, 5672,12000,1886,25028, 6381 - 6383等不常配置的端口。
在Route Table中添加中国区两个被标记为全球的IP地址。这是必须的地址,也是在配置中常常忽略的问题。也是产生此问题的根源。

参考资料
相关文章
-
【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
【Azure API 管理】APIM如何实现对部分固定IP进行访问次数限制呢?如60秒10次请求
- 互联网
- 2026年04月04日
-
【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
【Azure API 管理】解决API Management添加AAD Group时遇见的 Failed to query Azure Active Directory graph due to error 错误
- 互联网
- 2026年04月04日
-
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
- 互联网
- 2026年04月04日
-
【Azure API 管理】APIM 配置Validate
【Azure API 管理】APIM 配置Validate
- 互联网
- 2026年04月04日
-
【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验
【Azure API 管理】APIM CORS策略设置后,跨域请求成功和失败的Header对比实验
- 互联网
- 2026年04月04日
-
【Azure API 管理】 为APIM创建一个审批订阅申请的RBAC角色,最少的Action内容是什么呢?
【Azure API 管理】 为APIM创建一个审批订阅申请的RBAC角色,最少的Action内容是什么呢?
- 互联网
- 2026年04月04日






