跳至内容
IP 池管理

IP 池管理

IP 池提供多个出站 IP,支持自动健康检查和故障转移。当某个 IP 被封禁或被列入黑名单时,smtp-probe 会自动切换到下一个健康 IP。

向池中添加 IP

# 添加 IP,可选指定反向 DNS 域名
smtp-probe pool add 1.2.3.4 --domain mail-a.example.com
smtp-probe pool add 1.2.3.5 --domain mail-b.example.com

查看池状态

smtp-probe pool list

展示每个 IP 的状态(healthyblacklistedtimeout)、上次检查时间和失败次数。

健康检查

对池中所有 IP 进行 RBL 黑名单扫描:

# 检查所有池中 IP
smtp-probe pool check

# 检查指定 IP
smtp-probe pool check 1.2.3.4

自动故障转移

verify 命令中使用 --pool

smtp-probe verify user@example.com --pool

故障转移行为:

  1. 从池中选择第一个健康 IP
  2. 尝试建立 SMTP 连接
  3. 若服务器返回 5xx(被封禁/黑名单),将该 IP 标记为 blacklisted
  4. 使用下一个健康 IP 重试
  5. 最多重试 3 次后放弃

移除 IP

smtp-probe pool remove 1.2.3.4

池持久化

池数据存储在 ~/.smtp-probe/pool.json,跨重启持久化。

{
  "ips": [
    {"ip": "1.2.3.4", "domain": "mail-a.example.com", "status": "healthy"},
    {"ip": "1.2.3.5", "domain": "mail-b.example.com", "status": "blacklisted"}
  ]
}