AWS俄亥俄区域EC2实例创建数小时后Port 25被封,无法发邮件
解决AWS EC2俄亥俄区实例Port 25被封导致Webmail无法发件的问题
这个问题我碰到过很多次,核心原因是AWS对新账号的EC2实例默认会限制端口25的出站流量——哪怕刚创建时能正常连通,后续AWS的反垃圾邮件系统也会自动触发这个限制,尤其是俄亥俄(us-east-2)这类通用区域。下面给你分步解决的方案:
一、永久解决:申请解除Port 25限制
AWS允许合法用户申请解除这个限制,步骤如下:
- 登录AWS管理控制台,进入「Support Center」(支持中心)
- 创建一个新的Case,选择「Service Limit Increase」(服务限额提升)
- 服务类型选「EC2」,然后在限额类型里找到「Email sending limit (SES and EC2)」下的「Port 25 outbound limit」
- 填写你的EC2实例信息(区域选us-east-2,实例ID等),详细说明你的邮件用途:比如是企业内部Webmail服务、合法的客户通知邮件等,避免提到垃圾邮件相关的内容
- 提交后AWS会在1-2个工作日内审核,通过后Port 25的限制就会解除
二、临时替代方案(等待审核期间可用)
如果需要立刻恢复邮件发送,可以用以下两种方法绕开Port 25的限制:
1. 配置WHM使用AWS SES作为SMTP中继
AWS SES(简单邮件服务)的端口587/465不受出站限制,配置步骤:
- 登录WHM控制面板,进入「Exim Configuration Manager」(Exim配置管理器)
- 找到「SMTP Relay」(SMTP中继)设置项,添加SES的SMTP服务器:
email-smtp.us-east-2.amazonaws.com - 配置SES的IAM凭证:你需要先在AWS IAM里创建一个有
AmazonSESFullAccess权限的用户,获取Access Key和Secret Key,填入WHM的SMTP认证信息 - 选择加密连接端口:推荐用587(STARTTLS)或者465(SSL),保存配置后重启Exim服务
2. 修改Exim默认出站端口为587
很多主流邮件服务商(比如Google、Outlook)都支持587端口接收邮件,修改步骤:
- 在WHM的「Exim Configuration Manager」里,找到「Advanced Editor」(高级编辑器)
- 搜索
remote_smtp传输模块,把默认的端口25改成587 - 保存配置并重启Exim,这样WHM的邮件会通过587端口发送,绕开AWS的Port 25限制
三、检查其他可能的限制点
在操作上述步骤前,先排除其他可能的封禁:
- EC2安全组:确认出站规则里允许TCP端口25、587、465访问
0.0.0.0/0 - CentOS系统防火墙:执行
firewall-cmd --list-all(如果用firewalld)或者iptables -L(如果用iptables),确认没有封禁出站的邮件端口 - WHM防火墙插件:如果安装了ConfigServer Security & Firewall(CSF),进入WHM的CSF配置,确认出站规则里允许邮件端口
你的测试片段参考
服务器刚部署完成时(Port 25可用):
[root@ip-172-31-43-92 ~]# telnet aspmx.l.google.com 25 Trying 172.217.214.26... Connected to aspmx.l.google.com . Escape character is '^]'. 220 mx.google.com ESMTP n18si6406443jao.103 - gsmtp quit 221 2.0.0 closing connection n18si6406443jao.103 - gsmtp Connection closed by foreign host. [root@ip-172-31-43-92 ~]#
数小时后及重启服务器后(Port 25被限制):
[root@ip-172-31-43-92 home]# telnet aspmx.l.google.com 25 Trying 172.217.212.26... # 此处会出现连接超时/被拒绝的提示,说明Port 25出站流量已被AWS限制
内容的提问来源于stack exchange,提问作者Kishor Patidar
相关产品推荐
相关产品推荐

