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

Proxmox架构下Docker部署RoundCube无法连接MailCow VM的IMAP登录问题

Proxmox架构下Docker部署RoundCube无法连接MailCow VM的IMAP登录问题

配置服务器碰到这种连接拒接的问题真的很闹心!先理清楚你的现有架构,方便一步步排查问题:

当前服务器架构

  • Hetzner根服务器,搭载Proxmox虚拟化平台
  • OPNSense虚拟机:负责处理所有入站流量,仅放行Proxmox的SSH和8006端口
  • MailCow虚拟机:通过OPNSense的NAT映射所有邮件服务所需端口
  • Docker虚拟机:运行各类业务容器,内置Caddy反向代理处理SSL证书
    • 负责将外部请求重定向到MailCow虚拟机的Web服务

遇到的具体问题

你尝试在Docker主机上部署RoundCube,想要连接到MailCow虚拟机的IMAP服务,但登录时持续报错:

errors: IMAP Error: Login failed for e@mail.com against mail.host.name from 10.0.10.10 (X-Forwarded-For: 1.2.3.4). Could not connect to mail.host.name:143: Connection refused in /var/www/html/program/lib/Roundcube/rcube_imap.php on line 211 (POST /?_task=login&_action=login)

已确认的排查结果

你已经验证MailCow虚拟机到Docker虚拟机的IP直连是正常的,结合现有信息,给你几个针对性的排查方向:

  1. 反向测试Docker侧到MailCow的连通性
    在Docker虚拟机(或者直接进入RoundCube容器内部)执行命令:nc -zv mail.host.name 143,确认是否能正常连接到MailCow的IMAP端口。如果容器内部连不通,要检查容器的网络模式(比如是host模式还是桥接模式),以及容器自身的iptables规则是否拦截了出站请求。

  2. 检查MailCow的IMAP服务监听地址
    登录MailCow虚拟机,查看dovecot(IMAP服务)的配置,确认它不是仅监听127.0.0.1,而是绑定了虚拟机的内部IP(如10.0.x.x段)或者0.0.0.0。可以用命令ss -tulpn | grep 143查看端口的监听绑定情况。

  3. 排查虚拟机间的防火墙规则
    虽然OPNSense处理了外部流量,但Proxmox宿主机的虚拟机防火墙、Docker虚拟机的本地防火墙,是否拦截了143端口的跨子网访问?需要确认Docker所在子网到MailCow子网的143端口是开放状态。

  4. 校验RoundCube的配置准确性
    检查RoundCube的config.inc.php配置文件,确认IMAP服务器地址是否填写了MailCow的内部IP(而非外部域名)。如果使用外部域名,要确保Docker虚拟机的DNS能正确解析mail.host.name到MailCow的内部IP,避免走外部NAT链路导致连接失败。

备注:内容来源于stack exchange,提问作者FMK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:48:09