如何公开Container App的TCP 25端口?配置VNet和NAT仍无法访问
实现Container App TCP 25端口公网访问的操作方案
一、先确认Container App基础配置正确性
- 检查Container App的Ingress设置:已启用TCP协议,端口指定为25,访问范围设为「外部」或「VNet + 外部」;若为自定义VNet部署,需确认Ingress的VNet集成配置无误。
- 验证容器端口映射:确保容器内服务确实监听25端口,且Container App的端口配置与容器端口完全匹配。
二、通过Application Gateway for Containers(AGC)实现TCP 25端口转发
AGC是适配容器场景的负载均衡方案,支持TCP协议的公网入站转发,具体步骤如下:
- 部署AGC实例
- 在Azure门户创建AGC实例,关联至你的自定义VNet(需保证AGC所在子网与Container App子网路由连通)。
- 配置AGC的公共IP:选择静态公共IP地址(推荐),注意Azure默认限制新公共IP的25端口,需提交支持工单解除该限制。
- 创建TCP路由规则
- 在AGC中添加TCP路由,将公网25端口映射到Container App的25端口:
- 前端端口:设置为25
- 后端目标:直接选择你的Container App作为后端池
- 协议:TCP
- 在AGC中添加TCP路由,将公网25端口映射到Container App的25端口:
- 配置网络安全组(NSG)
- 在Container App所在子网的NSG中,添加入站规则:允许来自AGC子网的TCP 25端口流量。
- 在AGC所在子网的NSG中,添加入站规则:允许公网的TCP 25端口流量。
三、关键注意事项
- Azure 25端口限制:Azure默认禁止公共IP的25端口出入站流量,必须通过Azure支持工单申请解除限制,否则所有配置都无法生效。
- NAT Gateway的作用边界:NAT Gateway仅用于Container App的出站流量代理,无法实现公网到Container App的入站TCP 25端口访问,因此必须依赖AGC这类负载均衡器做入站转发。
- 分步验证连通性:先通过VNet内的虚拟机telnet Container App的25端口,确认服务本身正常;再通过公网telnet AGC的公共IP:25,验证转发规则是否生效。
内容的提问来源于stack exchange,提问作者VIPPER
相关产品推荐
相关产品推荐

