8 个步骤:从全新主机到生产邮件流
邮件服务器对网络的依赖大于对硬件的依赖:如果端口 25 被封锁或缺少反向 DNS (PTR),无论 CPU 多强,邮件都无法投递。本指南严格按顺序引导您完成从预检、安装、双密钥 DKIM、TLS 到移动设备接入,直至首次验证投递的全过程。
nextxch 如何启动并进入生产状态
nextxch 将 ESMTP、IMAP4rev2、POP3、JMAP、Exchange ActiveSync、CalDAV/CardDAV、ManageSieve、SpamGuard、GoBD WORM 归档、管理控制台 (/admin/) 和 nextxch Webmail PWA (/mail/) 打包为单个内存安全的二进制文件(空闲内存约 40 到 90 MB)。首次启动时不会从 GitHub 下载任何内容,也无需外部 NSSM 包装器、Redis、Rspamd 或单独的 Webmail 容器。
系统与网络先决条件(部署前检查清单)
安装前请逐项核对以下全部 6 项。其中 4 项需在服务器之外,于您的托管或 DNS 控制面板中设置。
| 端口 | 协议 / 服务 | 方向 | 要求与指导 |
|---|---|---|---|
25 / TCP | ESMTP(MX 服务器间 + STARTTLS/DANE) | 入站与出站 | 必需 - 接收和投递互联网邮件所必不可少。 |
443 / TCP | HTTPS(/admin/、/mail/、JMAP、ActiveSync、DAV、MTA-STS) | 入站(+ 出站) | 必需 - 提供 Webmail、管理、移动推送、DAV、JMAP 与 ACME。 |
465 / TCP | SMTPS 提交(隐式 TLS,RFC 8314) | 入站 | 必需 - 首选的隐式 TLS 提交端口 (RFC 8314)。 |
587 / TCP | SMTP 提交 (STARTTLS) | 入站 | 必需 - 供 Outlook、打印机和 ERP 使用的标准 STARTTLS 提交。 |
993 / TCP | IMAPS(IMAP4rev2 隐式 TLS) | 入站 | 必需 - 加密 IMAP4rev2,零轮询 IDLE 推送。 |
80 / TCP | HTTP(ACME HTTP-01 & Autoconfig) | 入站 | 推荐(使用 TLS-ALPN-01 或网关 PFX 时可选)。 |
4190 / TCP | ManageSieve (STARTTLS) | 入站 | 可选(Webmail 可视化 Sieve 编辑器已通过 443 端口工作)。 |
143 / TCP | IMAP (STARTTLS) | 入站 | 可选(优先使用端口 993 隐式 TLS)。 |
995 / TCP | POP3S(隐式 TLS) | 入站 | 可选(仅当在“管理 > 网络”中启用 POP3 时;默认关闭)。 |
110 / TCP | POP3 (STLS) | 入站 | 可选(优先使用端口 995 隐式 TLS)。 |
| 部署规模 | CPU | 内存 | 磁盘与推荐数据库 |
|---|---|---|---|
| 1 - 250 个邮箱 | 2 vCPU | 1 - 2 GB | NVMe/SSD · 内嵌 SQLite WAL + Zstandard(服务器占用约 40-90 MB)。 |
| 250 - 2,500 个邮箱 | 4 vCPU | 4 - 8 GB | NVMe + 可选混合 S3 · PostgreSQL 18 或 Microsoft SQL Server (2019-2025)。 |
| 2,500+ 高可用集群 | 8+ vCPU | 16+ GB | 基于 PostgreSQL 18 或 SQL Server Always On + S3 Object Lock 的双活节点。 |
选择平台与存储后端
所有平台运行完全相同的功能集。请选择与您的运维团队相匹配的部署方式和 SQL 后端。
| 平台 | 方法 | 最适合 |
|---|---|---|
| Windows Server 2019-2025 | .msi / install.ps1 | 原生 Windows SCM 服务,无需 Docker 或 NSSM;非常适合与 Microsoft SQL Server 搭配或用于 hMailServer 迁移。 |
| Linux(x86_64 & ARM64) | install.sh · .deb · systemd | 在 Debian、Ubuntu LTS、RHEL/Rocky 或 ARM64 服务器上以非 root 身份运行的轻量级 systemd 守护进程。 |
| Docker Compose | nextxch/server:1.0.0 | 可在 Linux 主机、Proxmox 虚拟机、Synology、UGREEN 和 Unraid 上复现的容器栈。 |
| macOS & Kubernetes | launchd / Helm v3 | Mac mini 办公服务器 (launchd) 或可水平扩展的双活 Kubernetes 集群。 |
8 步教程:从安装到第一封验证通过的测试邮件
请在下方选择您的目标平台。8 个步骤中的每一步都会说明其作用、给出确切命令、确认预期结果,并在问题发生处指出最常见的陷阱。
安装服务并开放防火墙端口
下载发布包,校验其 SHA-256 摘要,并注册后台服务和持久化数据目录。
# PowerShell (Admin): Downloads .msi (v1.0.0), verifies SHA-256 & launches setup irm https://nextxch.com/install.ps1 | iex # Ensure Windows Defender Firewall permits inbound mail & HTTPS ports New-NetFirewallRule -DisplayName "nextxch" -Direction Inbound ` -Protocol TCP -LocalPort 25,80,443,465,587,993,4190 -Action Allow
# Debian / Ubuntu / RHEL / macOS: Verifies SHA-256 & registers systemd unit curl -fsSL https://nextxch.com/install.sh | sudo bash # If UFW is enabled, allow required mail & HTTPS ports: sudo ufw allow 25,80,443,465,587,993,4190/tcp
# Pulls SHA-256-verified nextxch/server:1.0.0 & writes docker-compose.yml curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- \ --mode docker --domain firma.de --hostname mail.firma.de --admin admin@firma.de
验证服务健康状况并登录 /admin/
确认日志中各监听器已正常启动,然后使用安装时设置的管理员凭据登录管理控制台。
Get-Service nextxch # Open in browser: https://mail.firma.de/admin/ (or http://localhost/admin/)
sudo systemctl status nextxch sudo journalctl -u nextxch -n 30 --no-pager # Open in browser: https://mail.firma.de/admin/
docker compose ps docker compose logs --tail=30 nextxch # Open in browser: https://mail.firma.de/admin/
配置邮件域与并行双密钥 DKIM
在 /admin/ 中打开 域与路由 -> 管理域。nextxch 会自动生成两组并行的 DKIM 密钥对:RSA-2048(选择器 s2026)和 Ed25519(选择器 s2026ed)。
启用 TLS 证书(ACME Let's Encrypt 或网关 PFX)
打开“安全与证书” -> “TLS 与 ACME”。当 mail.company.com 解析到您的主机后,通过 HTTP-01 或 TLS-ALPN-01(端口 443)申请 Let's Encrypt 证书,或上传来自 pfSense/SSL 网关的 .pfx/.pem 证书。
发布 DNS 记录并运行实时 DNS 验证
从内置 DNS 顾问复制计算出的 DNS 记录(或导出 BIND 区域文件):MX、A/AAAA、SPF、两个 DKIM 选择器(s2026 + s2026ed)、DMARC、MTA-STS、TLS-RPT,以及可选的 DANE TLSA (3 1 1) 和 BIMI。
投入生产前加固服务器
为您的管理员账户注册通行密钥 (WebAuthn) 或 TOTP 2FA,将 SpamGuard 阈值保持在 4.5 / 9.0 并启用智能灰名单,并在商业域上启用 GoBD WORM 归档。
30 秒内创建第一个邮箱并连接移动设备
在“账户与列表”下创建第一个用户邮箱,在 https://mail.company.com/mail/ 登录,然后点击“设备设置”,生成二维码或防即时通讯预取的一键入门链接,附带经 CMS 签名的 iOS/macOS 描述文件或 Exchange ActiveSync 配置。
通过 Live MX Tester 和 Message Trace 确认入站与出站投递
运行 Diagnostics & Logs -> Outbound MX & DANE Tester,针对 gmail.com 或外部地址进行测试,然后从 /mail/ 发送一封真实邮件并回复,以验证双向邮件流。
在 pfSense / OPNsense、SSL 网关和反向代理之后运行
在 pfSense、OPNsense、Sophos 或 HAProxy 之后部署时,请配置以下三项设置,以确保诊断准确并保留真实客户端 IP:
| 场景 | 推荐配置 |
|---|---|
| Split-DNS / Hairpin-NAT | 在 Unbound 中配置 Split-DNS 主机覆盖,将 mail.company.com 指向内部 LAN IP,或在网关上启用 Pure NAT Reflection。 |
| HAProxy PROXY 协议 | 启用 PROXY 协议 v1/v2 并限定为您受信任的代理 CIDR,使 SPF 和自动封禁看到真实的远程 IP,而不是网关 IP。 |
| 网关证书 | 将网关续期后的 .pfx/.pem 证书同步到 nextxch,用于端口 25/465/587/993;动态 SNI 会零停机热重载更新后的证书。 |
按症状排查故障(从错误到即时修复)
请点击下方您观察到的症状,或在上方的快速筛选框中输入部分错误信息:
服务正在运行,外部端口检查器却报告 'Blocked / Timeout'
TCP 25 / 465 / 993 Timeout
服务启动时无法绑定端口
Address already in use (:25 / :80 / :443)
发往 Gmail、Microsoft 365 或大型 ISP 的外发邮件被拒收
550-5.7.25 / 550-5.7.1 PTR missing
实时 DNS 检查器找不到您发布的 DKIM 或 DMARC TXT 记录
NXDOMAIN s2026._domainkey
Let's Encrypt ACME 无法签发证书,或浏览器显示 TLS 警告
ACME challenge failed
iPhone 打开 WhatsApp / Teams 引导链接后未立即启动“设置”中的配置文件安装
iOS In-App WebView
Docker 容器反复重启或无法写入挂载的主机卷
Access to path '/var/lib/nextxch' denied
邮件客户端无法通过 IMAP 或 SMTP 登录
535 Authentication failed / TLS required
后续步骤:10 秒升级、备份与迁移
确认双向邮件流通后,您的服务器即可投入生产。请随时准备好以下三项运维流程:
# 1) In-place upgrade (preserves configuration, certificates & mailboxes): # Linux / macOS: curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update # Windows PowerShell (Administrator): irm https://nextxch.com/install.ps1 | iex # 2) Backup scope (only 2 paths): # - Config file: appsettings.Production.json (including license token) # - Data dir: Storage:DataDirectory (SQLite WAL / blobs / TLS certs) # or pg_dump / SQL Server backup when running an external DB cluster
首次启动前的快速解答
nextxch 在 Windows Server 上是否需要 NSSM 或 Docker Desktop?
不需要。与在 Windows 上需要 NSSM 服务包装器的服务器不同,nextxch 通过我们的官方 .msi 安装程序原生注册到 Windows 服务控制管理器 (SCM),无需 Docker Desktop、WSL2 或 Hyper-V。
nextxch 首次启动时是否需要访问互联网来下载其 WebUI 或垃圾邮件规则?
不需要。整个管理控制台 (/admin/)、nextxch Webmail PWA (/mail/)、SpamGuard 引擎以及所有协议监听器都包含在经 SHA-256 校验的软件包内,可 100% 离线/物理隔离启动。
为什么在发送第一封测试邮件之前,反向 DNS (PTR) 必须匹配?
Gmail、Microsoft 365 和欧洲 ISP 等大型接收方会验证您的公网 IPv4 和 IPv6 地址是否都能通过 PTR 反向解析到您确切的 SMTP EHLO 主机名(例如 mail.company.com)。在双栈主机上缺少 IPv6 PTR 记录,是导致 550-5.7.25 拒收的首要原因。
服务器投入生产后,就地升级如何进行?
在 Linux/macOS 上运行 curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update,在 Windows 上运行 irm https://nextxch.com/install.ps1 | iex(或使用 /admin/ 中的一键更新程序)。您的 appsettings.Production.json、TLS 证书、DKIM 密钥和邮件存储都会自动保留。