准备好系统安装环境
创始人
2025-07-27
0

在运行mailcow: dockerized之前,你应该检查一些需求:

提醒

不要尝试在Synology/QNAP设备(任何NAS)、OpenVZ、LXC或其他容器平台上安装mailcow。支持KVM、ESX、Hyper-V等全虚拟化平台。

提示

  • mailcow: dockerized需要一些端口对传入的连接开放,所以请确保你的防火墙没有阻止这些连接。

  • 确保没有其他应用程序干扰mailcow的配置,例如另一个邮件服务

  • 正确的DNS设置对于每个良好的邮件服务器设置都至关重要,因此在开始之前,请确保您至少已经了解了基本知识!

  • 确保你的系统有正确的日期和时间设置。这对于诸如双因素TOTP身份验证等各种组件至关重要。

最低系统资源

请确保您的系统至少有以下资源:

资源最小的需求
CPU1 GHz
 内存最少6 GiB +1 GiB交换(默认配置)
磁盘20 GiB(不带电子邮件)
体系结构x86_64, ARM64

 不支持

OpenVZ, Virtuozzo and LXCOpenVZ, Virtuozzo和LXC

ClamAV和Flatcurve (FTS引擎)可能会占用RAM。您可以mailcow.conf中禁用它们,通过设置SKIP_CLAMD=y 和 SKIP_FTS=y

提示

我们知道单纯MTA可以在128 MiB RAM上运行。Mailcow是一个成熟的、随时可用的群件,具有许多额外功能,使生活更轻松。mailcow配备了web服务器,webmailer, ActiveSync (MS),反病毒,反垃圾邮件,索引,文档扫描(Oletools), SQL (MariaDB),缓存(Redis), MDA, MTA各种web服务。

一个SOGo worker在被清除之前可能占用大约350 MiB的RAM。你计划使用的ActiveSync连接越多,你需要的RAM就越多。默认配置生成20个工作进程。

 内存使用示例

如果一家公司有15台手机(启用了EAS)和大约50个并发的IMAP连接,那么它应该规划16 GiB RAM。

6 GiB RAM+1 GiB swap适合大多数私有安装,而8 GiB RAM推荐给大约5到10个用户。

作为我们支持的一部分,我们可以帮助您正确规划设置。

支持的操作系统

很重要

mailcow使用Docker作为基础组件,由于跨多个平台的一些技术差异,我们不支持所有平台,即使它们可以运行Docker。

下表包含了我们正式支持和测试的所有操作系统(截至2024年12月):

OS兼容性
3.19以后版本的Alpine⚠️
Debian 11, 12
 Ubuntu 22.04(或更新版本)
Alma Linux 8, 9
Rocky Linux 9

说明

✅ = 使用说明开箱即用。

⚠️ = 需要一些手动调整,否则可用。

❌ = 一般不兼容。

 ❔ =待定。


提醒

注意:所有其他操作系统(未提到)也可以工作,但尚未正式测试。

防火墙和端口

请检查是否有任何mailcow的标准端口是开放的,并没有被其他应用程序使用:

ss -tlpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'
# or:
netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995|4190'

风险

在启用防火墙/ufw的系统上运行mailcow有几个问题。

你应该禁用它(如果可能的话),并将你的规则集移动到Docker-user链中,这不会在Docker服务重启后被清除。
有关如何在DOCKER-USER链中使用iptables-persistent的信息,请参阅这个(blog.donnex.net)或这个(unroute .io)上的指南。
当mailcow运行dockerized时,输入规则对限制对mailcow的访问没有影响。
可以使用前向链替代。

如果此命令返回任何结果,请删除或停止在该端口上运行的应用程序。您也可以通过 mailcow.conf 配置文件来调整mailcows端口。

输入端口

如果你在mailcow前面有防火墙,请确保这些端口对进入的连接是开放的:

Service Protocol PortContainerVariable
Postfix SMTP TCP25postfix-mailcow${SMTP_PORT}
Postfix SMTPSTCP465postfix-mailcow${SMTPS_PORT}
Postfix SubmissionTCP587postfix-mailcow${SUBMISSION_PORT}
Dovecot IMAP TCP143dovecot-mailcow${IMAP_PORT}
Dovecot IMAPSTCP993dovecot-mailcow${IMAPS_PORT}
Dovecot POP3TCP110dovecot-mailcow${POP_PORT}
Dovecot POP3STCP995dovecot-mailcow${POPS_PORT}
Dovecot ManageSieve TCP4190dovecot-mailcow${SIEVE_PORT}
HTTP(S)TCP80/443nginx-mailcow${HTTP_PORT}/${HTTPS_PORT}

当需要为某个IP地址绑定业务时,可以为该IP地址添加前缀:SMTP_PORT=1.2.3.4:25

重要:您不能使用IP:端口绑定HTTP_PORTHTTPS_PORT。请用HTTP_PORT=1234HTTP_BIND=1.2.3.4来代替。

传出端口/主机

使用mailcow需要一些传出连接。确保mailcow可以与以下主机或端口通信:

Service Protocol Port Target Reason 
ClamdTCP873rsync.sanesecurity.net下载ClamAV签名(在mailcow中预打包)
Dovecot 鸽舍TCP443spamassassin.heinlein-support.de下载由Rspamd处理的Spamassassin规则,通过Dovecot下载
mailcow ProcessesTCP80/443github.com下载mailcow更新(基于代码)
mailcow ProcessesTCP443hub.docker.com下载Docker镜像(直接从Docker Hub下载)
mailcow ProcessesTCP443asn-check.mailcow.email请求错误的ASN检查API(针对Spamhaus Free blocklist)
mailcow ProcessesTCP80ip4.mailcow.email & ip6.mailcow.email获取公网IP地址在UI中显示(可选)
PostfixTCP25, 465                                                    Any MTA的传出连接
RspamdTCP80fuzzy.mailcow.email下载糟糕的主题正则表达式映射(由Servercow训练)
RspamdTCP443bazaar.abuse.ch下载恶意软件MD5校验供Rspamd检测
RspamdTCP443urlhaus.abuse.ch下载用于Rspamd检测的恶意软件链接
RspamdUDP11445fuzzy.mailcow.email连接到全局mailcow fuzzy(由Servercow+社区训练)
RspamdUDP11335fuzzy1.rspamd.com & fuzzy2.rspamd.com连接到全局Rspamd模糊(由Rspamd团队训练)
Unbound TCP & UDP53Any 任何用于mailcow堆栈的DNS解析(用于DNSSEC验证和检索垃圾邮件列表信息)
Unbound ICMP (Ping) 
1.1.1.1, 8.8.8.8, 9.9.9.9基本的互联网连接检查

对Hetzner防火墙很重要

通过https://github.com/mailcow/mailcow-dockerized/issues/497#issuecomment-469847380引用https://github.com/chermsen(谢谢!)

对于所有正在与赫茨纳防火墙作斗争的人:

在这种情况下,端口53对于防火墙配置不重要。根据文档,unbound使用1024-65535端口范围进行外发请求。 由于Hetzner机器人防火墙是一个静态防火墙(每个传入的数据包都被检查并隔离)-必须应用以下规则:

For TCP 为TCP

SRC-IP:       ---
DST IP:       ---
SRC Port:    ---
DST Port:    1024-65535
Protocol:    tcp
TCP flags:   ack
Action:      Accept


For UDP 对于UDP

SRC-IP:       ---
DST IP:       ---
SRC Port:    ---
DST Port:    1024-65535
Protocol:    udp
Action:      Accept


如果你想应用更严格的端口范围,你必须首先更改unbound的配置(在安装后):

{mailcow-dockerized}/data/conf/unbound/unbound.conf:

outgoing-port-avoid: 0-32767

现在防火墙规则可以进行如下调整:

[...]
DST Port:  32768-65535
[...]

日期和时间

为了确保您的系统上有正确的日期和时间设置,请检查 timedatectl status 的输出:

$ timedatectl status
      Local time: Sat 2017-05-06 02:12:33 CEST
  Universal time: Sat 2017-05-06 00:12:33 UTC
        RTC time: Sat 2017-05-06 00:12:32
       Time zone: Europe/Berlin (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2017-03-26 01:59:59 CET
                  Sun 2017-03-26 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2017-10-29 02:59:59 CEST
                  Sun 2017-10-29 02:00:00 CET

NTP enabled: yes 和 NTP synchronized: yes 表示是否启用了NTP以及是否同步。

启用NTP需要执行 timedatectl set-ntp true 命令。你还需要编辑 /etc/systemd/timesyncd.conf :

# vim /etc/systemd/timesyncd.conf
[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org

Hetzner云(可能还有其他云)

检查 /etc/network/interfaces.d/50-cloud-init.cfg ,将IPv6接口从eth0:0改为eth0:

# Wrong:
auto eth0:0
iface eth0:0 inet6 static
# Right:
auto eth0
iface eth0 inet6 static

重启或重启接口。 你可能想要禁用cloud-init网络更改。

MTU

对OpenStack用户尤其重要:检查MTU并在docker-compose.yml中设置相应的MTU。请参阅我们的安装指南中的故障排除。


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

上一篇:mailcow信息与支持

下一篇:没有了

相关内容

热门资讯

准备好系统安装环境 在运行mailcow: dockerized之前,你应该检查一些需求:提醒不要尝试在Synology...
开源邮件服务器对比,看看哪款适... 开源邮件服务器对比,看看哪款适合你开源的企业邮件系统通常提供完整的邮件服务,包括邮件发送、接收、存储...
mailcow信息与支持 使用` moo `的邮件服务器套件什么是mailcow: dockerized?问题Mailcow还...