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

Node.js IMAPD读取器在AWS远程服务器连接失败(ECONNREFUSED)

解决AWS服务器上Node.js IMAP连接被拒绝(ECONNREFUSED)的问题

Error: connect ECONNREFUSED 200.80.43.104:143 意味着AWS服务器无法和目标IMAP服务器建立TCP连接,以下是具体排查和修复步骤:

1. 检查AWS安全组出站规则

AWS安全组默认会限制出站流量,必须确保对应EC2实例的安全组允许访问目标IP的143端口:

  • 登录AWS控制台,找到实例关联的安全组
  • 添加出站规则:类型选「自定义TCP」,端口范围填143,目标地址填200.80.43.104/32
  • 生产环境建议精准配置,测试阶段可临时开放所有出站TCP快速验证

2. 在AWS服务器上测试网络连通性

通过命令行直接测试到目标服务器的端口连通性,排除代码之外的网络问题:

# 使用telnet测试
telnet 200.80.43.104 143

# 或者用netcat(如果已安装)
nc -zv 200.80.43.104 143
  • 如果命令返回连接失败,说明网络层面存在拦截,重点排查安全组、网络ACL或目标服务器防火墙
  • 如果能正常连通,再转向代码层面排查

3. 验证目标IMAP服务器的IP白名单

多数企业邮件服务器会设置IP白名单,仅允许可信IP访问IMAP服务:

  • 联系邮件服务器管理员,将AWS服务器的公网IP添加到IMAP服务的访问白名单
  • 确认目标服务器的防火墙(如iptables、ufw)没有拦截143端口的外来请求

4. 代码及依赖的潜在问题

即使本地运行正常,部署到AWS后仍可能存在配置或版本差异:

  • 核对代码中Server变量的取值,确保部署时没有写错目标IP
  • 尝试切换到加密IMAP端口:很多现代邮件服务器强制要求加密连接,可修改配置测试:
    const imapConfig = {
      user: Email,
      password: Password,
      host: Server,
      port: 993, // 改用IMAPS加密端口
      tls: true,
    };
    
  • 检查依赖版本:确保AWS服务器上安装的node-imap(或其他IMAP依赖包)版本和本地一致,版本差异可能导致连接逻辑异常

5. 排查AWS子网的网络ACL

如果安全组配置无误,检查实例所在子网的网络ACL:

  • 网络ACL是无状态规则,需同时配置出站允许143端口和入站允许目标服务器的响应流量
  • 测试阶段可临时放宽ACL规则,确认问题后再收紧权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:27:50