邮件服务器需要开放哪些端口
邮件服务器按实际角色开放端口:25 用于中继,587/465 用于提交,993/995 用于加密读取。143 用 STARTTLS、110 用 STLS;只放行所需服务。
直接回答:只开放实际启用的协议。 服务器间 SMTP 中继通常用 25;客户端提交用要求 STARTTLS 的 587 或隐式 TLS 的 465;IMAP/POP3 可用隐式 TLS 的 993/995,或分别在 143 使用 STARTTLS、110 使用 STLS。端口开放不等于加密与认证已正确配置。
端口速查表
| 端口 | 协议 | 用途 | 加密 |
|---|---|---|---|
| 25 | SMTP | 服务器之间中继邮件(MTA→MTA) | 明文起步,STARTTLS 升级 |
| 587 | Submission | 客户端提交邮件(推荐) | 明文起步,应配置为强制STARTTLS后才认证/提交 |
| 465 | SMTPS | 客户端提交邮件(标准隐式 TLS) | 全程 SSL/TLS |
| 143 | IMAP | 收信(邮件留在服务器) | 明文起步,STARTTLS 升级 |
| 993 | IMAPS | 收信 | 全程 SSL/TLS |
| 110 | POP3 | 收信(下载到本地) | 明文起步,STLS 命令升级 TLS |
| 995 | POP3S | 收信 | 全程 SSL/TLS |
按角色决定开哪些
只收发本域邮件的全功能服务器:入方向开 25(别的服务器给你投递)+ 587 + 993(或 995),出方向放通 25(向外部服务器投递)。
提供客户端提交、对外走第三方中继的服务器:按需要开放入站587/465与收信端口。若只是应用调用第三方SMTP发信,则通常只需出站连接,不需要开放这些入站监听。
纯内部测试环境:可只开 25 内网段访问。
防火墙配置示例(UFW)
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp
# 不用 POP3 就不开 110/995
# 已启用 UFW 时无需再次 enable;首次启用前先放行实际管理来源/端口并准备控制台回退
sudo ufw status verbose
关键注意事项
- 25 端口常被云厂商默认封禁:具体限制随厂商、账号、区域和网络产品而异,按当前策略申请或使用受支持的SMTP中继
- 明文端口谨慎开放:143/110 即使支持 STARTTLS,也可能被降级攻击。多数场景直接只开 993/995 更省心
- 587 必须要求认证:开放端口本身不等于开放中继;对公网提交应要求认证和TLS,并限制允许的中继身份/目标,避免未授权中继,很快会被滥发垃圾邮件并进黑名单
- 配套 DNS 不能少:端口只是通路,SPF、DKIM、DMARC、PTR 反向解析是重要条件,但仍不能保证送达
端口放行后,可从实际收发网络验证连接。使用观测云 TCP 拨测时,为所需端口指定节点和检测周期;它只能验证 TCP 连接,SMTP 认证、TLS 协商和邮件最终送达还需用一次真实测试邮件确认。
常见问题(FAQ)
Q:IMAP 和 POP3 选哪个?
A:多设备访问选 IMAP(邮件留在服务器,状态同步);单设备离线阅读可选 POP3,其是否删除服务器副本取决于客户端和服务端设置。现代场景几乎都该用 IMAP,993 端口。
Q:465 和 587 都是提交端口,有什么区别?
A:465 是隐式 TLS(连接即加密),一度被弃用后被 RFC 8314 重新认可;587 是 STARTTLS(先明文后升级)。RFC 8314 支持并鼓励隐式 TLS;可按客户端需求同时提供 465 和强制 STARTTLS 的 587,不能把 465 当作已弃用端口。
Q:邮件能发不能收,怎么排查端口?
A:先 dig MX 你的域名,确定实际邮件交换主机,再从外网测试该MX主机的25端口是否通(不通多为防火墙/安全组或云厂商封禁);再查 MX 记录是否指向本机;最后看邮件服务器日志是否收到了对端连接。
参考资料
本文依据官方资料核对,未进行现场运行测试;代码与配置示例需结合实际版本、权限和环境验证。
- www.rfc-editor.org:rfc8314
- manpages.ubuntu.com:ufw.8
- docs.guance.com:tcp
- docs.guance.com:logging
- docs.guance.com:synthetic test detection