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 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)。
这一定位决定了它的两个鲜明特征:
- 它是「纯 MTA」:只负责 SMTP 层面的收信、发信、队列与投递,不内置 IMAP/POP3 收取、Webmail、Web 管理后台。终端用户的「读邮件」需要 Dovecot 等 IMAP 服务器配合,「管理」则落在配置文件与命令行工具上。
- 它把「不易配错」当作第一目标:默认拒绝开放中继(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 Stars | 979 | shields.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.0 | 2024-04-21 |
| v1.15.0 | 2025-01-17 |
| v1.15.1 | 2025-03-30 |
| v1.16.0 | 2025-06-08 |
| v1.17.0 | 2025-11-30 |
| v1.18.0 | 2026-06-07 |
| v1.19.0 | 2026-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 描述,一封来信的处理链路是:
- 客户端连接 smtp/submission 端口,HELO/EHLO 握手;
- 可选 STARTTLS;认证(AUTH)必须在 TLS 之上进行;
MAIL FROM阶段做 SPF 检查与连接安全等级(security level)评估;RCPT TO阶段判定收件人:远端收件人必须已认证(防开放中继),本地收件人检查用户库是否存在;DATA阶段收完信体后:解析信体做环路检测;已认证用户用本域 DKIM 私钥签名,未认证来信则验证 DKIM 签名并写入Authentication-Results头;补齐Received、SPF 结果等头;- 执行 post-data hook(可外接 greylistd 灰名单、SpamAssassin、rspamd、ClamAV 杀毒);
- 进入队列并向客户端返回成功应答。
投递阶段是异步的:每封信一个 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 适合谁
- 个人/家庭/小团队的域名邮箱:自有域名、日邮件量不高、希望收发都握在自己手里,且愿意再配一个 Dovecot 读信;
- 应用服务器的发信出口:作为 Web 应用/告警系统的 submission 中继,SPF/DKIM/MTA-STS 开箱即用,域名 TLS 降级防护对投递成功率是实打实的加分项;
- Ansible/IaC 管理的多台小 MTA:文件即状态、无数据库依赖,非常适合声明式管理;
- 学习 SMTP 协议与 MTA 内部机制的实践环境:监控端点把队列、命令计数、追踪全部暴露出来,比 Postfix 的日志考古直观得多。
6.2 不适合谁
- 需要「邮箱产品」的用户:要 Webmail、通讯录、日历、Web 管理台,请看 Mailu、Mailcow、Stalwart、Modoboa 这类套件;
- 大型/多租户邮件平台:chasquid 没有集群、没有配额管理面板、没有租户自助体系,这类需求应考虑 Postal 等专门方案;
- 强反垃圾开箱需求的场景:必须自己接 rspamd/SpamAssassin,hook 机制灵活但需要动手;
- 需要 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 | 管理方式 | 适合规模 |
|---|---|---|---|---|---|---|---|
| chasquid | Go | Apache-2.0 | 上游 v1.19.0;jammy 1.8-1ubuntu0.3 | 单进程纯 MTA | 无(外接) | 配置文件 + CLI + 监控端点 | 个人/小团队 |
| Postfix | C | IPL-1.0 / EPL-2.0 | jammy 3.6.4-1ubuntu1.4 | 模块化纯 MTA | 无(外接) | main.cf + master.cf | 全规模,通用主力 |
| Exim | C | GPL-2.0+ | jammy 4.95-4ubuntu2.12 | 单二进制纯 MTA | 无(外接) | 一体化 exim4.conf 运行时配置 | 全规模,路由规则极灵活 |
| OpenSMTPD | C | ISC | jammy 6.8.0p2;上游 7.9.0p0 | 单进程纯 MTA | 无(外接) | smtpd.conf(语法最短) | 个人/小团队 |
| Maddy | Go | GPL-3.0 | 0.9.6 | 一体化 MTA + IMAP | 内置实验性 IMAP | 单配置文件 | 个人/小团队 |
| Stalwart | Rust | AGPL-3.0 | v0.16.26 | 一体化 MTA+IMAP+JMAP | 内置 IMAP/JMAP + Web 管理 | Web 管理台 + TOML | 个人/中小组织 |
| Haraka | Node.js | MIT | 3.3.5 | 插件化 MTA(事件驱动) | 无(外接) | config/plugins + JS 插件 | 定制中转/过滤网关 |
| docker-mailserver | Shell | MIT | 16.0.1 | Postfix+Dovecot 全家桶容器化封装 | 内置 Dovecot | 环境变量 + CLI 脚本 | 个人/小团队(会容器运维) |
| Mailu | Python/多服务 | MIT | 2024.06.65 | 多服务套件(front/admin/smtp/imap/…) | 内置(roundcube/snappy) | Web 管理台 + mailu.env | 小中型组织 |
| Modoboa | Python | ISC | 2.11.1 | 管理面板 + Postfix/Dovecot | 内置(webmail) | Web 管理台 | 中小型托管商 |
💡 技术拓展:同为 MTA,「纯 MTA」与「邮件套件」是两条产品线。纯 MTA(Postfix/Exim/OpenSMTPD/chasquid/Haraka)只管 SMTP 收发与投递,读信、账号产品化、反垃圾都靠组合;邮件套件(Mailu/Mailcow/Modoboa/Stalwart/Maddy)把 IMAP、Webmail 甚至管理后台打包,代价是组件更多、资源占用更高。选型先分清需求在哪条线上,再在同线内比。
7.2 与站内已有组件专栏的对照阅读
- 《Mailu 2024.06.65 介绍与选型指南》:多服务邮件套件,带 Web 管理台与反垃圾栈,适合「要全家桶」的团队;chasquid 则是它的「极简单组件」对照面。
- 《Stalwart v0.16.26 介绍与选型指南》:Rust 一体化(MTA+IMAP+JMAP),功能覆盖面与 chasquid 重叠度低(chasquid 不做 IMAP),适合想一步到位的中小组织。
- 《docker-mailserver 16.0.1 介绍与选型指南》:容器化 Postfix/Dovecot 封装,功能全但运维面较厚;chasquid 提供的是裸机原生包形态。
- 《Maddy 0.9.6 介绍与选型指南》:同为 Go 轻量路线,Maddy 多了实验性 IMAP,chasquid 则在 TLS 降级防护、MTA-STS 与发行版集成上更完整。
- 《OpenSMTPD 7.9.0p0 介绍与选型指南》:C 语言极简 MTA,配置语法最短;chasquid 的优势是国际化(SMTPUTF8)、监控端点与 DKIM 内建。
- 《Modoboa 2.11.1 介绍与选型指南》:面板驱动的托管型方案,适合多域名出租/代管;chasquid 不提供面板。
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 指南》