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

非本地主机无法连接aiosmtpd SMTP服务器求助

问题分析与解决方案

核心原因

你的aiosmtpd服务器默认仅绑定本地回环地址(::1/127.0.0.1),这意味着它只接受本机发起的连接请求,远程主机无法通过网络访问该服务。而你编写的socket服务器能正常接收远程数据,是因为它默认(或你显式设置)绑定了0.0.0.0(所有IPv4网卡)或::(所有IPv6网卡),监听了所有网络接口。

解决步骤

1. 修改aiosmtpd的监听地址

启动aiosmtpd时,显式指定绑定到所有网络接口:

  • 命令行启动方式:

    python -m aiosmtpd -n -l 0.0.0.0:8025
    

    其中0.0.0.0表示监听所有IPv4网卡,8025为目标端口;若需支持IPv6,可改为:::8025。

  • 代码启动方式:
    如果通过Python代码启动aiosmtpd,需在创建控制器时指定hostname参数为0.0.0.0:

    from aiosmtpd.controller import Controller
    from aiosmtpd.handlers import Sink
    
    handler = Sink()
    controller = Controller(handler, hostname='0.0.0.0', port=8025)
    controller.start()
    try:
        input("Press Enter to stop server...")
    finally:
        controller.stop()
    

2. 验证监听状态

修改配置后,在Windows上执行以下命令确认监听状态:

netstat -ano | findstr :8025

若输出中出现0.0.0.0:8025或[::]:8025,说明配置生效;若仍显示127.0.0.1:8025或[::1]:8025,需检查启动命令或代码是否正确。

3. 重新测试远程连接

配置完成后,从远程主机执行telnet 你的服务器IP 8025,此时应能正常建立连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:37