当前位置:首页 > 云服务器 > 正文

服务器端口587

器 端口 587是用于安全传输邮件的SMTPS协议 端口,支持SSL/TLS加密,保障邮件传输的安全性

端口587的基本定义与用途

SMTP(简单邮件传输协议)的扩展端口——587是互联网工程任务组(IETF)推荐的用于提交电子邮件至服务器的标准端口,它基于明文传输机制(可配合STARTTLS升级为加密连接),主要功能包括:

  • 发送外发邮件(Outbound Mail);
  • 支持身份验证和安全策略;
  • 替代传统的不安全端口25(已被多数ISP限制)。
特性 说明
协议类型 SMTP over TLS(先建立明文链接,再协商加密)
默认行为 需主动发起STARTTLS指令以启用SSL/TLS加密
典型应用场景 企业邮箱客户端、邮件网关向目标服务器中继邮件
优势 兼容性强、支持现代安全标准,逐步取代端口25作为主流发信端口


为何选择587而非其他端口?

历史背景与安全性演进

早期邮件传输直接使用端口25,但因其缺乏强制加密导致易受中间人攻破,为解决此问题,IETF提出:

服务器端口587 第1张

  • 端口587作为“显式提交端口”(Explicit Submission Port),强制要求客户端先通过STARTTLS切换至加密模式;
  • 端口465则用于隐式SSL/TLS(Implicit SSL),即全程必须保持加密状态,但兼容性较差。

运营商与防火墙策略差异

端口号 常见用途 是否被封锁风险 推荐等级
25 传统SMTP 高(住宅宽带) ️仅限内网
587 ESMTP with STARTTLS ⭐⭐⭐⭐⭐首选
465 SMTPS (Implicit SSL) ️中等 ⭐⭐备用方案

提示:大多数云服务商和企业级防火墙仅开放587端口供外部访问,因其平衡了安全性与兼容性。


配置示例与常见问题排查

正确配置步骤(以Postfix为例):

# /etc/postfix/main.cf关键参数设置 submission inet n y smtpd smtp_tls_security_level = may # 允许STARTTLS协商 smtp_tls_note_starttls_offer = yes # 记录日志中的加密尝试

️ 典型错误及解决方案:

现象 可能原因 修复方法
“Connection refused” 未监听587端口或防火墙拦截 netstat -tulnp | grep :587确认服务运行;检查iptables规则
“Invalid HELO argument” 客户端未正确触发STARTTLS流程 确保邮件客户端支持ESMTP并勾选“使用TLS”选项
认证失败(Authentication failed) 用户名/密码错误或SASL机制未启用 验证凭据;在Postfix中启用smtpd_sasl_auth_enable=yes


安全防护建议

  1. 访问控制列表(ACL)

    仅允许可信IP段通过587端口提交邮件,

    168.1.0/24 OK

    服务器端口587 第2张

  2. 速率限制

    防止暴力免费攻破:

  3. 日志审计

    监控异常登录尝试:

    服务器端口587 第3张

    smtpd_proxy_filter = mypolicyd:127.0.0.1:10023

    结合SPF/DKIM/DMARC实现全链路溯源。

  4. 相关问题与解答

    Q1: 如果服务器同时开放了25、587和465端口会怎样?

    A: 这会导致资源浪费和管理混乱,最佳实践是仅保留587作为对外公开端口,内部网络可保留25用于MTA间通信,而465仅在特殊场景下使用(如老旧设备兼容需求),多端口并存可能引发配置冲突和安全隐患。

    Q2: 如何测试本地主机能否成功通过587端口发送邮件?

    A: 使用命令行工具进行端到端验证:

    # 安装bsmtp并执行以下命令(替换为用户实际邮箱地址) echo "Test body" | bsmtp -t <your_email@example.com> -h mail.example.com -p 587 -u your_username -w your_password

    若返回代码为250 OK且收件箱收到测试邮件,则表明配置

0