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

EKS中通过NLB暴露SMTP服务的Ingress配置问题求助

解决EKS中SMTP服务NLB访问问题的排查思路

1. 验证Ingress Nginx Controller的TCP配置生效情况

  • 检查Controller启动参数:确认Deployment/DaemonSet的容器启动命令包含--tcp-services-configmap=ingress-nginx/ingress-nginx-tcp,这是加载TCP转发配置的核心参数,缺失则ConfigMap不会生效。
  • 查看Controller Pod日志:执行kubectl logs -n ingress-nginx <controller-pod-name>,搜索TCP关键字,确认是否有Loaded TCP config map: ingress-nginx/ingress-nginx-tcp类日志,同时检查25端口是否被正确加载。
  • 检查Pod端口监听:进入Controller Pod执行netstat -tulpn | grep 25,确认25端口处于LISTEN状态。

2. 排查关联Ingress Controller的NLB配置

  • 确认NLB监听规则:检查NLB是否创建了25端口的TCP监听,且转发目标指向Ingress Controller对应的Target Group(IP模式)或NodePort(NodePort模式)。
  • 确认NLB类型:确保NLB为internet-facing类型,若为internal则外部无法访问。
  • 查看NLB访问日志:在AWS控制台开启NLB访问日志,检查外部请求是否到达NLB,是否存在转发失败记录(如目标组无健康实例、流量被拒绝等)。

3. 排查单独创建的NLB配置

  • 确认目标组协议:SMTP基于TCP协议,确保目标组协议设置为TCP而非HTTP。
  • 复核健康检查配置:即使目标组状态显示健康,也要确认健康检查使用25端口、TCP协议;若SMTP服务响应较慢,可适当调健康检查超时(如从2秒改为5秒)、间隔时间。
  • 检查后端安全组:SMTP Pod所在节点或Pod的安全组,必须允许NLB的安全组访问25端口,否则即使NLB安全组开放,后端仍会阻断流量。

4. 检查云服务商与VPC层面的限制

  • AWS默认25端口限制:AWS EC2默认封禁外部访问25端口(防垃圾邮件),即使安全组配置正确,也需通过AWS Support提交工单申请解封。
  • VPC网络ACL检查:网络ACL是无状态的,需同时配置入站和出站规则允许25端口的TCP流量,避免ACL规则阻断流量。

5. 流量路径测试与抓包验证

  • 使用VPC Reachability Analyzer:在AWS控制台创建分析任务,测试从外部IP到SMTP Pod的路径,定位阻断环节。
  • Pod内抓包验证:在Ingress Controller Pod或SMTP Pod内执行tcpdump port 25,从外部发起telnet连接,观察是否有数据包到达,判断流量是否抵达后端服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 10:17:22