chasquid 1.19.0 介绍与选型指南

chasquid 轻量级 SMTP 邮件服务器的定位、架构与功能特性全景:单守护进程纯 MTA、内建 DKIM/SPF/MTA-STS/TLS 降级防护与监控端点,版本双源实查(上游 v1.19.0 / Ubuntu jammy 1.8-1ubuntu0.3,2026-10-21),并给出与 Postfix、Exim、OpenSMTPD、Maddy、Stalwart、Mailu 等 10 款同类组件的量化选型对比。

chasquid邮件服务器chasquid2026/10/21

chasquid 1.19.0 介绍与选型指南

目标:面向「想用一台普通 Linux 服务器收发邮件的个人与小团队」,讲清 chasquid 这个轻量级 SMTP 服务器的定位、架构、功能特性与版本现状,并给出与 Postfix、Exim、OpenSMTPD、Haraka、Maddy、Stalwart、Mailu、docker-mailserver、Modoboa 的量化选型对比,帮助读者判断「什么时候该选 chasquid、什么时候不该」。本篇为认知与选型篇,全部数据来自官方站点、官方源码仓库与发行版包仓库的联网溯源(查询日期 2026-10-21),未做本地部署验证。

一、环境信息

本篇为纯联网溯源的认知篇,写作所依据的信息来源如下(均为 2026-10-21 实查):

  • 官方站点:https://blitiri.com.ar/p/chasquid(项目主页、功能清单、文档入口)
  • 源码仓库:https://github.com/albertito/chasquid(GitHub 镜像,Releases 与代码浏览;官方主仓库为 https://blitiri.com.ar/repos/chasquid,同时镜像于 GitHub 与 GitLab)
  • 版本发布流:GitHub Releases Atom 流 https://github.com/albertito/chasquid/releases.atom
  • 社区指标:shields.io 徽章 https://img.shields.io/github/stars/albertito/chasquid.svg(GitHub Stars 计数)
  • 发行版包仓库:Debian 官方包页 https://packages.debian.org/trixie/chasquid;Ubuntu jammy universe 仓库(apt-cache policy chasquid,universe 源)
  • 源码内文档:v1.19.0 源码包 docs/ 目录(install.md、flow.md、aliases.md、dkim.md、monitoring.md、haproxy.md、dovecot.md、hooks.md、security.md 等)

对比表中其他 MTA 的版本数据来源:Ubuntu 22.04(jammy)archive 仓库 apt-cache policy 实查,以及站内已有组件专栏(标注对应链接)。所有外部数据的查询日期均为 2026-10-21。

二、软件概述

2.1 一句话定位

chasquid 是一个用 Go 语言编写的 SMTP(电子邮件)服务器,官方给它的定位是:「以简单、安全、易运维为核心目标,能像典型 MTA 一样收发邮件(可以替代 Postfix 或 Exim),主要面向个人与小群体」(来源:官方站点,查询日期 2026-10-21)。

这一定位决定了它的两个鲜明特征:

  1. 它是「纯 MTA」:只负责 SMTP 层面的收信、发信、队列与投递,不内置 IMAP/POP3 收取、Webmail、Web 管理后台。终端用户的「读邮件」需要 Dovecot 等 IMAP 服务器配合,「管理」则落在配置文件与命令行工具上。
  2. 它把「不易配错」当作第一目标:默认拒绝开放中继(open relay)、拒绝明文认证,内建 SPF/MTA-STS 检查与 DKIM 签名,很多在 Postfix/Exim 里需要十几行配置的安全基线,在 chasquid 里是开箱即得的默认行为。

2.2 基本信息

项目内容来源
软件名chasquid官方站点
作者Alberto Bertogli(GitHub: albertito,Debian 开发者)官方站点 / Debian 包页
首次发布2016 年(LICENSE 版权年份 2016)源码 LICENSE
编程语言Go官方站点
开源许可Apache License 2.0源码 LICENSE
最新稳定版v1.19.0(2026-10-17 发布)GitHub Releases Atom,查询日期 2026-10-21
GitHub Stars979shields.io 徽章,查询日期 2026-10-21
官方文档https://blitiri.com.ar/p/chasquid/(how-to / install / manpages)官方站点
通信渠道邮件列表 chasquid@googlegroups.com、GitHub Issues、IRC #chasquid (OFTC)官方站点
安全问题报告私密邮件至 alb@blitiri.com.ar官方站点

2.3 发行与集成状态

chasquid 的一大优势是已经进入主流发行版的官方仓库,这在同类小型 MTA 中并不多见(来源:Debian 包页与官方 install.md,查询日期 2026-10-21):

  • Debian:官方仓库 main 区,trixie(当前 stable)版本 1.15.0-1,由 Debian Go Packaging Team 维护,支持 amd64、arm64、armel、armhf、i386、ppc64el、riscv64、s390x 共 8 种架构;co-maintainer 之一就是作者本人。
  • Ubuntu:universe 区,22.04 LTS(jammy)为 1.8-1ubuntu0.3(jammy-updates 与 jammy-security 均有提供,说明有安全补丁跟进)。
  • Arch Linux:官方 AUR 有 chasquid 包(另有社区维护的二进制包仓库)。
  • Alpine:edge/testing 仓库提供 chasquid 包。

对读者而言这意味着:在 Debian/Ubuntu 服务器上 apt install chasquid 即可获得带 systemd 集成、man 手册与 fail2ban 过滤器的完整安装,无需添加任何第三方源。

2.4 版本节奏

按 GitHub Releases 记录(查询日期 2026-10-21),近两年多的发布节奏如下:

版本发布日期
v1.14.02024-04-21
v1.15.02025-01-17
v1.15.12025-03-30
v1.16.02025-06-08
v1.17.02025-11-30
v1.18.02026-06-07
v1.19.02026-10-17

平均每年 2~3 个 minor 版本,节奏稳定、持续活跃,属于「小步快跑」的维护型项目。值得注意的是 DKIM 内建签名/验证是从 1.14 开始引入的(来源:源码 docs/dkim.md),Ubuntu 22.04 仓库中的 1.8 版并不包含该特性——这是「发行版版本 vs 上游最新版」差距最大的一块功能差异。

三、核心架构

本节基于官方源码 v1.19.0 内置文档(docs/flow.md、docs/monitoring.md 等,查询日期 2026-10-21)梳理,不含本地验证。

3.1 进程与监听形态

chasquid 是单守护进程架构:一个 chasquid 进程承担全部 SMTP 角色,默认监听三类端口:

  • 25 端口(SMTP):接收来自其他邮件服务器的来信;
  • 587 端口(Submission):供用户客户端提交邮件,STARTTLS 之后才允许认证;
  • 465 端口(Submission over TLS):隐式 TLS 的提交端口。

监听方式有两种,由配置决定:systemd socket 激活(Debian/Ubuntu 包的默认形态,由 chasquid-smtp.socket 等 socket 单元持有端口,服务重启不断流)或进程自行监听(上游源码自带的 systemd 单元形态,配合 CAP_NET_BIND_SERVICE 能力以非特权用户运行并直接绑定 25 端口)。两种形态都做到了「服务进程不以 root 跑、却能绑低端口」。

3.2 一封信的旅程(收信侧)

按官方 flow.md 描述,一封来信的处理链路是:

  1. 客户端连接 smtp/submission 端口,HELO/EHLO 握手;
  2. 可选 STARTTLS;认证(AUTH)必须在 TLS 之上进行;
  3. MAIL FROM 阶段做 SPF 检查与连接安全等级(security level)评估;
  4. RCPT TO 阶段判定收件人:远端收件人必须已认证(防开放中继),本地收件人检查用户库是否存在;
  5. DATA 阶段收完信体后:解析信体做环路检测;已认证用户用本域 DKIM 私钥签名,未认证来信则验证 DKIM 签名并写入 Authentication-Results 头;补齐 Received、SPF 结果等头;
  6. 执行 post-data hook(可外接 greylistd 灰名单、SpamAssassin、rspamd、ClamAV 杀毒);
  7. 进入队列并向客户端返回成功应答。

投递阶段是异步的:每封信一个 goroutine 驱动的投递循环,按收件人逐个尝试——本地收件人交给外部 MDA(默认 maildrop,可换 procmail,或用随包的 mda-lmtp 把信件经 LMTP 转交给 Dovecot 等),远端收件人直接做 SMTP 外发,失败则按递增间隔重试,超过 give_up_send_after(默认 20h)放弃并向发件人回送 DSN(退信通知)。队列信封与投递结果持久化在 data_dir(默认 /var/lib/chasquid),重启不丢信。

3.3 用户与域名的存储

chasquid 没有数据库依赖,全部状态都是文件:

  • /etc/chasquid/chasquid.conf:主配置(单一 INI 风格文本文件,参数见本专栏 《chasquid 1.19.0 配置参数详解》);
  • /etc/chasquid/domains/<域名>/users:每域独立的用户口令库(protobuf 文本格式,用 chasquid-util user-add 管理);
  • /etc/chasquid/domains/<域名>/aliases:每域别名表(经典 user: 目标1, 目标2 格式,支持管道别名);
  • /etc/chasquid/certs/<域名>/:TLS 证书目录,目录结构与 certbot 完全一致,可直接软链到 /etc/letsencrypt/live;
  • /var/lib/chasquid/:运行数据(队列、domaininfo、STS 缓存等)。

这套「文件即状态」的设计让备份/迁移退化为 rsync 目录,也让 chasquid 与 Ansible 等声明式运维工具天然合拍。

3.4 可观测性

chasquid 内置一个监控 HTTP 服务(默认关闭,由 monitoring_address 参数开启),提供:

  • /metrics:OpenMetrics/Prometheus 格式的白盒指标(队列投递计数、SMTP 命令计数、活跃连接数、SPF/STS 缓存命中、DKIM 签名错误等);
  • /debug/vars:标准库 expvar 格式的同一批指标;
  • /debug/queue:队列当前状态;
  • /debug/traces、/debug/flags、/debug/config、/debug/pprof:请求追踪、启动参数、生效配置与 Go 性能剖析。

配合 smtp-check(对外发路径的诊断工具)与 chasquid-util(用户/别名/配置/DKIM 管理),运维排障不依赖任何外部平台。监控端点的实操细节见本专栏 《chasquid 1.19.0 常用 CLI 命令详解》。

四、功能特性

综合官方站点功能清单与 v1.19.0 源码文档(查询日期 2026-10-21),chasquid 的功能面可以归为四组:

4.1 易用性

  • 配置集中在一个文件,参数少而语义直白;官方明确以「hard to mis-configure」为目标;
  • 多域名/虚拟域:每域独立用户库、别名表与 DKIM 密钥;
  • 用户名后缀投递:user+anything@domain 归投 user@domain(suffix_separators),并支持丢弃用户名中的分隔字符(drop_characters,如 u.se_r 归投 user);
  • 国际化:SMTPUTF8 国际化用户名与 IDNA 国际化域名;
  • 集成 Dovecot 认证:可把认证桥接到已有 Dovecot 用户库(IMAP 与 SMTP 共享口令)。

4.2 安全性

  • 默认不开放中继;认证强制走 TLS;
  • SPF 收信检查与 MTA-STS 策略支持;
  • DKIM:1.14 起内建对来信的签名验证与对已认证去信的签名(chasquid-util dkim-keygen 一条命令生成密钥并打印 DNS 记录);
  • per-domain TLS 支持度追踪(domaininfo):记住每个远端域的历史 TLS 能力,一旦某域名支持过 TLS,后续连接若出现「降级到明文」即拒发,防降级攻击;
  • 多证书:按证书名分别加载,适配多域名/SNI;
  • 与 Let's Encrypt 的目录结构兼容,证书落地即用;
  • 包内自带 fail2ban 过滤器(/etc/fail2ban/filter.d/chasquid.conf),对 AUTH/MAIL/RCPT/DATA 失败的来源 IP 做封禁;
  • post-data hook 挂载点:官方示例脚本串联 greylistd(灰名单)、SpamAssassin/rspamd(反垃圾)、ClamAV(杀毒)。

4.3 运维性

  • 监控 HTTP 端点(见 3.4 节);
  • chasquid-util:用户增删、口令校验、别名解析、配置打印、DKIM 密钥管理;
  • smtp-check:模拟一次完整的外发投递路径(STS 策略 → MX → TLS → SMTP),排障利器;
  • mda-lmtp:把本地投递转成 LMTP 的小工具,适配「用 Dovecot LMTP 做最终投递」的架构;
  • systemd socket 激活(发行版包)与守护级安全加固(上游单元:ProtectSystem=full + CAP_NET_BIND_SERVICE)。

4.4 明确不做的事

  • 不收邮件:没有 IMAP/POP3/Webmail,终端用户读信必须配 Dovecot/Cyrus 等;
  • 没有 Web 管理后台:域名/用户/别名的增删全在文件与 CLI;
  • 没有内置反垃圾/杀毒引擎:通过 hook 外接;
  • 没有集群形态:单机角色,高可用靠外部手段(如 HAProxy + haproxy_incoming 透传真实源地址);
  • 不内置数据库:用户、别名、队列均为文件。

五、快速开始(官方指引,最小可用示例)

以下流程摘自官方 how-to 与 install 文档(来源:blitiri.com.ar/p/chasquid 官方站点及源码 docs/install.md,查询日期 2026-10-21),用于建立对操作形态的直观认识;命令级实测与逐行回显请见本专栏《Ubuntu 22.04 安装 chasquid 指南》。

# 1. 安装(Debian/Ubuntu 官方仓库)
sudo apt install chasquid

# 2. 放一张证书(目录结构与 certbot 一致,可直接软链 letsencrypt)
sudo mkdir -p /etc/chasquid/certs/mx.example.com
sudo cp fullchain.pem privkey.pem /etc/chasquid/certs/mx.example.com/

# 3. 建域、建用户(用户库在 /etc/chasquid/domains/<域>/users)
sudo chasquid-util user-add user@example.com --password=PASSWORD

# 4. 写别名(可选):/etc/chasquid/domains/example.com/aliases
#    postmaster: user

# 5. 启动并验证
sudo systemctl start chasquid
chasquid-util print-config

关键观察:从「安装」到「可提交邮件」只有证书、域名、用户三步;没有数据库初始化、没有交互式向导、没有必填的十几个环境变量。

六、适用场景与限制

6.1 适合谁

  1. 个人/家庭/小团队的域名邮箱:自有域名、日邮件量不高、希望收发都握在自己手里,且愿意再配一个 Dovecot 读信;
  2. 应用服务器的发信出口:作为 Web 应用/告警系统的 submission 中继,SPF/DKIM/MTA-STS 开箱即用,域名 TLS 降级防护对投递成功率是实打实的加分项;
  3. Ansible/IaC 管理的多台小 MTA:文件即状态、无数据库依赖,非常适合声明式管理;
  4. 学习 SMTP 协议与 MTA 内部机制的实践环境:监控端点把队列、命令计数、追踪全部暴露出来,比 Postfix 的日志考古直观得多。

6.2 不适合谁

  1. 需要「邮箱产品」的用户:要 Webmail、通讯录、日历、Web 管理台,请看 Mailu、Mailcow、Stalwart、Modoboa 这类套件;
  2. 大型/多租户邮件平台:chasquid 没有集群、没有配额管理面板、没有租户自助体系,这类需求应考虑 Postal 等专门方案;
  3. 强反垃圾开箱需求的场景:必须自己接 rspamd/SpamAssassin,hook 机制灵活但需要动手;
  4. 需要 IMAP 同步代收多账号(如 offlineimap 式用法)或 JMAP API 的场景:Stalwart 更合适。

七、同类选型对比

7.1 横向对比表

下表为 2026-10-21 实查数据。版本列:chasquid/Postfix/Exim/OpenSMTPD 取自 Ubuntu jammy 仓库 apt-cache policy 与 GitHub Releases(chasquid 上游 v1.19.0),站内已有组件取本站专栏发布版本;许可列取各自官方仓库声明。

组件语言许可版本(2026-10-21)形态读信(IMAP)/Webmail管理方式适合规模
chasquidGoApache-2.0上游 v1.19.0;jammy 1.8-1ubuntu0.3单进程纯 MTA无(外接)配置文件 + CLI + 监控端点个人/小团队
PostfixCIPL-1.0 / EPL-2.0jammy 3.6.4-1ubuntu1.4模块化纯 MTA无(外接)main.cf + master.cf全规模,通用主力
EximCGPL-2.0+jammy 4.95-4ubuntu2.12单二进制纯 MTA无(外接)一体化 exim4.conf 运行时配置全规模,路由规则极灵活
OpenSMTPDCISCjammy 6.8.0p2;上游 7.9.0p0单进程纯 MTA无(外接)smtpd.conf(语法最短)个人/小团队
MaddyGoGPL-3.00.9.6一体化 MTA + IMAP内置实验性 IMAP单配置文件个人/小团队
StalwartRustAGPL-3.0v0.16.26一体化 MTA+IMAP+JMAP内置 IMAP/JMAP + Web 管理Web 管理台 + TOML个人/中小组织
HarakaNode.jsMIT3.3.5插件化 MTA(事件驱动)无(外接)config/plugins + JS 插件定制中转/过滤网关
docker-mailserverShellMIT16.0.1Postfix+Dovecot 全家桶容器化封装内置 Dovecot环境变量 + CLI 脚本个人/小团队(会容器运维)
MailuPython/多服务MIT2024.06.65多服务套件(front/admin/smtp/imap/…)内置(roundcube/snappy)Web 管理台 + mailu.env小中型组织
ModoboaPythonISC2.11.1管理面板 + Postfix/Dovecot内置(webmail)Web 管理台中小型托管商

💡 技术拓展:同为 MTA,「纯 MTA」与「邮件套件」是两条产品线。纯 MTA(Postfix/Exim/OpenSMTPD/chasquid/Haraka)只管 SMTP 收发与投递,读信、账号产品化、反垃圾都靠组合;邮件套件(Mailu/Mailcow/Modoboa/Stalwart/Maddy)把 IMAP、Webmail 甚至管理后台打包,代价是组件更多、资源占用更高。选型先分清需求在哪条线上,再在同线内比。

7.2 与站内已有组件专栏的对照阅读

7.3 选型建议

  • 如果你的需求是「域名的 SMTP 收发 + 自有用户体系 + 不要面板」:chasquid 是 Postfix/Exim 之外的强替代,尤其当你受够了 main.cf 的几百个参数时——chasquid 的全部参数在本专栏 《chasquid 1.19.0 配置参数详解》里一页讲完。
  • 如果你要给应用做发信出口并关心送达率:chasquid 的 DKIM 签名 + SPF + MTA-STS + TLS 降级防护四件套默认生效,比裸 Postfix 起点高。
  • 如果你要读信(IMAP):chasquid + Dovecot 组合(认证可桥接 Dovecot,投递可走 mda-lmtp);或者直接选 Stalwart/Mailu 套件。
  • 如果你在意「软件的长期维护主体」:Postfix/Exim 是数十年的社区巨石,chasquid 是高活跃的个人项目(已进 Debian 官方仓库、作者本人是 Debian co-maintainer,降低了单点风险,但仍需认识这一差异)。
  • 反垃圾强度优先:Mailu/Modoboa 套件或 Haraka 插件生态起步更快,chasquid 需要 hook 自行接线 rspamd。

八、参考链接

  • 官方站点:https://blitiri.com.ar/p/chasquid
  • 官方 how-to 指南:https://blitiri.com.ar/p/chasquid/howto
  • 安装文档:https://blitiri.com.ar/p/chasquid/install
  • GitHub 仓库(镜像):https://github.com/albertito/chasquid
  • Releases:https://github.com/albertito/chasquid/releases
  • Debian 包页:https://packages.debian.org/trixie/chasquid
  • Ubuntu 包页:https://packages.ubuntu.com/jammy/chasquid
  • DKIM 集成说明(源码内文档):https://github.com/albertito/chasquid/blob/main/docs/dkim.md
  • 监控说明(源码内文档):https://github.com/albertito/chasquid/blob/main/docs/monitoring.md
  • 本站 chasquid 专栏系列:《chasquid 1.19.0 配置参数详解》、《chasquid 1.19.0 常用 CLI 命令详解》、《Ubuntu 22.04 安装 chasquid 指南》