iRedMail 1.7.4 配置参数详解

iRedMail 1.7.4 核心配置逐项详解:Postfix main.cf 关键参数与 master.cf 过滤链、Dovecot 主配置与 iredmail 扩展、iRedMail.tips 摘要、Roundcube/iRedAdmin/iRedAPD 配置位置与 iRedMail 定制点,均取自 Ubuntu 22.04 实测环境真实文件与命令回显。

iRedMailiRedMailPostfixDovecotnginxMariaDBSpamAssassin2026/10/17

iRedMail 1.7.4 配置参数详解

目标:盘点 iRedMail 1.7.4 安装后各组件的配置文件位置与关键参数——Postfix main.cf/master.cf、Dovecot dovecot.conf 与 iredmail 扩展目录、iRedMail.tips 摘要文件、Roundcube 与 iRedAdmin/iRedAPD 的定制点,每项均给出真实环境的命令回显与逐项说明,作为后续调优与排障的配置地图。

一、环境信息

  • 操作系统:Ubuntu 22.04,iRedMail 1.7.4(MariaDB 后端,实测主机与安装篇一致)
  • 组件与版本:Roundcube 1.6.11、iRedAdmin 2.6(/opt/www 目录实录)、PHP 8.1 (FPM);Postfix(iRedMail 重写后 main.cf 共 372 行)、Dovecot、MariaDB、Nginx、Amavisd、iRedAPD、Fail2ban 均为安装包落盘版本
  • 域名与主机:演示域 example.com(DKIM 密钥 /var/lib/dkim/example.com.pem)
  • 关键路径:安装摘要 /root/iRedMail-1.7.4/iRedMail.tips、安装应答 /root/iRedMail-1.7.4/config、站点目录 /opt/www/

二、配置文件总地图

2.1 位置速查

iRedMail 把各组件配置按发行版标准位置落盘,本篇全部路径与参数实测于 Ubuntu 22.04 + iRedMail 1.7.4(MariaDB 后端):

组件配置文件/目录说明
安装摘要/root/iRedMail-1.7.4/iRedMail.tips全部凭据、路径、操作提示
安装应答/root/iRedMail-1.7.4/config向导选择的记录(含密码,注意权限)
Postfix/etc/postfix/main.cf、master.cf、aliasesmain.cf 由 iRedMail 重写
Postfix SQL 查询/etc/postfix/mysql/域/用户/别名查询 SQL
Dovecot/etc/dovecot/dovecot.conf + conf.d/*.conf + 根目录定制文件主配置 + conf.d + iRedMail 定制
MariaDB/etc/mysql/my.cnf向导可选 iRedMail 调优版
Nginx/etc/nginx/(模板生成 sites-enabled)webmail/iredadmin 站点
PHP-FPM/etc/php/8.1/fpm/Ubuntu 发行版默认
Amavisd/etc/amavis/conf.d/50-useriRedMail 定制集中在 50-user
Roundcube/opt/www/roundcubemail/config/config.inc.php软链 /opt/www/roundcubemail → 版本目录
iRedAdmin/opt/www/iredadmin/settings.py自有定制
iRedAPD/opt/iredapd/settings.py策略插件开关
Fail2ban/etc/fail2ban/jail.localiRedMail 生成邮件相关监狱
DKIM 密钥/var/lib/dkim/example.com.pemAmavisd 签名用
邮箱存储/var/vmail/vmail1、/var/vmail/sieve、/var/vmail/backup邮箱/sieve/备份脚本

(以上速查与 iRedMail.tips 输出一致,关键段落实录见 5.1 节。)

2.2 iRedMail 定制的总原则

iRedMail 的定制手法是「原生配置 + 追加/重写」:Postfix 在 main.cf 末尾追加 iRedMail 段、master.cf 重写关键服务通道;Dovecot 主文件精简、定制落在 conf.d 与 /etc/dovecot/ 根目录的专用文件;Nginx 由 /etc/nginx/templates/*.tmpl 模板生成站点;Amavisd 定制集中在 conf.d/50-user。因此升级或重装各组件时,不要手工合并整份配置,先找 iRedMail 的追加段/定制文件。

三、Postfix 配置详解

3.1 main.cf 关键参数(实测)

iRedMail 重写后的 main.cf 共 372 行,过滤出核心参数(真实回显):

$ postconf -n
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
allow_min_user = no
allow_percent_hack = no
biff = no
body_checks = pcre:/etc/postfix/body_checks.pcre
command_directory = /usr/sbin
compatibility_level = 3.6
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/lib/postfix/sbin
data_directory = /var/lib/postfix
debug_peer_level = 2
disable_vrfy_command = yes
dovecot_destination_recipient_limit = 1
enable_long_queue_ids = yes
enable_original_recipient = no
header_checks = pcre:/etc/postfix/header_checks
inet_interfaces = all
inet_protocols = ipv4
lmtp_tls_mandatory_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
lmtp_tls_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1
mail_owner = postfix
mailq_path = /usr/bin/mailq
message_size_limit = 15728640
...(输出节选:iRedMail 追加段还有 virtual_mailbox_domains/mysql 查询、mynetworks、TLS、sasl 等,全文以 postconf -n 为准)

逐项说明(iRedMail 定制点加粗):

参数实测值说明
content_filtersmtp-amavis:[127.0.0.1]:10024iRedMail 核心定制:所有邮件先送 Amavisd 过滤(10024),过滤后从 10025 回注。想临时绕过内容过滤排查问题,可 postconf -e content_filter= 后 systemctl reload postfix
header_checks / body_checkspcre:/etc/postfix/header_checks、body_checks.pcreiRedMail 预置的头部/正文规则(如拦截可执行附件的头部片段),按需增删规则行
disable_vrfy_commandyes禁用 VRFY 探测,减小信息泄露面
dovecot_destination_recipient_limit1逐收件人调用 Dovecot LDA,保证配额按人计
enable_long_queue_idsyes长队列 ID(如 4j66Jz48gDz3BJfP),日志可读性更好
message_size_limit15728640(15 MB)单邮件大小上限(含附件),按需 postconf -e 调整
inet_protocolsipv4iRedMail 默认仅 IPv4;有 IPv6 需求改 all
mynetworks127.0.0.0/8 等(见 postconf -n 全文)信任网段免过滤直发;生产不要把大网段加进来
virtual_mailbox_domainsproxy:mysql:/etc/postfix/mysql/...虚拟域从 vmail 库查询(/etc/postfix/mysql/ 下 SQL 文件)

3.2 master.cf:过滤链与提交端口

master.cf 定义服务通道。iRedMail 关键定制(实测原文节选):

$ grep -E '^(smtp|submission|amavis|dovecot|mlmmj)' -A 5 /etc/postfix/master.cf | head -42
smtp      inet  n       -       y       -       1       postscreen
smtpd     pass  -       -       y       -       -       smtpd
dnsblog   unix  -       -       y       -       0       dnsblog
tlsproxy  unix  -       -       y       -       0       tlsproxy
# Choose one: enable submission for loopback clients only, or for any client.
#127.0.0.1:submission inet n -   y       -       -       smtpd
#submission inet n       -       y       -       -       smtpd
--
submission inet  n       -       n       -       -       smtpd
    -o syslog_name=postfix/submission
    -o smtpd_tls_security_level=encrypt
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    -o content_filter=smtp-amavis:[127.0.0.1]:10026
--
dovecot    unix  -       n       n       -       -       pipe flags=DRh
    user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d
    ${user}@${domain} -m ${extension}

# Amavisd integration.
mlmmj      unix  -       n       n       -       -       pipe flags=ORhu
--
smtp-amavis unix -       -       n       -       32      smtp
    -o syslog_name=postfix/amavis
    -o local_header_rewrite_clients=
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o smtp_dns_support_level=disabled

逐项说明:

  1. smtp inet ... postscreen:25 端口接入层用 postscreen 做连接评估(dnsblog 负责 DNSBL 黑名单查询,tlsproxy 处理 STARTTLS 代理)。
  2. submission (587):强制 TLS(smtpd_tls_security_level=encrypt)+ SASL 认证 + 仅允许认证用户(smtpd_client_restrictions=permit_sasl_authenticated,reject)。注意其 content_filter 指向 10026——Amavisd 为提交通道设了独立的 ORIGINATING 策略组(见 7.1 节),与 25 端口普通入站的 10024 区分处理。
  3. dovecot pipe:最终投递走 Dovecot 的 deliver 投递代理(user=vmail:vmail 与 /var/vmail 属主一致)——这也是快速入门篇投递日志 relay=dovecot 的来源。
  4. smtp-amavis unix ... smtp(32 并发):过滤通道客户端,main.cf 的 content_filter=smtp-amavis:[127.0.0.1]:10024 引用的就是这里定义的服务名。

3.3 SQL 查询文件(虚拟域/账号)

虚拟域与账号不走系统用户,全部经 /etc/postfix/mysql/ 下的查询文件实时查库(实测目录):

$ ls /etc/postfix/mysql/
catchall_maps.cf       domain_alias_catchall.cf  recipient_bcc_maps.cf  sender_bcc_maps.cf  virtual_mailbox_maps.cf
relay_domains.cf       sender_login_maps.cf      virtual_alias_maps.cf  virtual_mailbox_domains.cf

解读:sender_login_maps.cf 供 reject_sender_login_mismatch 插件核对「MAIL FROM 与登录账号一致」;virtual_mailbox_domains.cf / virtual_mailbox_maps.cf 决定收信时哪些域与哪些地址存在。改 SQL 文件后 systemctl reload postfix 生效,无需重启。

四、Dovecot 配置详解

4.1 主配置 dovecot.conf(实测)

$ grep -E '^!include|^protocols|^listen|^mail_location|^disable_plaintext_auth' /etc/dovecot/dovecot.conf
listen = *
protocols = pop3 imap sieve lmtp
disable_plaintext_auth = yes
mail_location = maildir:%Lh/Maildir/:INDEX=%Lh/Maildir/
!include conf.d/*.conf
!include_try /etc/dovecot/iredmail/*.conf

逐项说明:

  • protocols:pop3 imap sieve lmtp 四协议(sieve 管过滤器脚本、lmtp 投递)。
  • disable_plaintext_auth = yes:禁止明文密码认证(TLS 之下才允许 LOGIN),与 Webmail/客户端的 STARTTLS 要求配套。
  • mail_location = maildir:%Lh/Maildir/:Maildir 格式,%Lh 是用户 home(虚拟用户 home 在 /var/vmail/vmail1/...,即邮箱目录,与快速入门篇 find 实测路径吻合)。
  • !include_try /etc/dovecot/iredmail/*.conf:iRedMail 扩展挂载点,升级不影响主文件。

4.2 iRedMail 的 Dovecot 定制文件(实测)

Dovecot 的 iRedMail 定制不在主文件,而是集中在 /etc/dovecot/ 根目录的专用文件与 conf.d(实测目录):

$ ls /etc/dovecot/
conf.d
dovecot-dict-auth.conf.ext
dovecot-dict-sql.conf.ext
dovecot-last-login.conf
dovecot-master-users
dovecot-mysql.conf
dovecot-share-folder.conf
dovecot-sql.conf.ext
dovecot-used-quota.conf
dovecot.conf

关键定制文件逐项:

文件作用常改点
dovecot-mysql.conf.ext(dovecot-mysql.conf)用户/密码 SQL 查询定义换数据库连接时改 connect 段
dovecot-sql.conf.extpassdb/userdb 的 SQL 驱动配置(查 vmail 库)改认证查询/密码哈希方案
dovecot-used-quota.conf配额 dict 定义(对接 quota2 表)调配额统计方式
dovecot-last-login.conf最近登录时间记录(写入 vmail 库 last_login)一般不动
dovecot-share-folder.conf共享邮箱目录 ACL需要共享邮箱时配置
conf.d/90-quota.confquota 插件策略(引用 used-quota dict)调整超限动作
conf.d/10-ssl.conf证书路径(iRedMail.crt/.key)与协议下限换 Let's Encrypt 证书时改 ssl_cert/ssl_key

4.3 认证与数据库对接

虚拟用户的认证走 SQL:conf.d/10-auth.conf 引用 passdb/userdb(iRedMail 生成段指向 dovecot-sql.conf.ext,driver=mysql 连 vmail 库,vmail 只读账号密码就配置在这里)。改用户密码可用 doveadm pw 生成哈希后 UPDATE vmail.mailbox(进阶篇有完整命令),或让用户走 Roundcube password 插件自助改密。

五、iRedMail.tips 与安装应答

5.1 iRedMail.tips 关键段落(实录节选)

Admin of domain example.com:

    * Account: postmaster@example.com
    * Password: q1w2e3r4

SSL cert keys (size: 4096):
    - /etc/ssl/certs/iRedMail.crt
    - /etc/ssl/private/iRedMail.key

Mail Storage:
    - Mailboxes: /var/vmail/vmail1
    - Global sieve filters: /var/vmail/sieve
    - Backup scripts and backup copies: /var/vmail/backup

MySQL:
    * Root user: root, Password: "q1w2e3r4" (without quotes)
    * Bind account (read-only):
        - Username: vmail, Password: <安装时随机生成>
    * Vmail admin account (read-write):
        - Username: vmailadmin, Password: <安装时随机生成>
    * Config file: /etc/mysql/my.cnf

Backup MySQL database:
    * Script: /var/vmail/backup/backup_mysql.sh

Postfix:
    * Configuration files:
        - /etc/postfix
    * SQL/LDAP lookup config files:
        - /etc/postfix/mysql

Dovecot:
    * Configuration files:
        - /etc/dovecot/dovecot.conf

解读:vmail(只读)与 vmailadmin(读写)是给 Postfix/Dovecot/iRedAdmin 查库用的专用账号——应用层配置里引用的就是它们的随机密码(如 /etc/postfix/mysql/*.cf、/etc/dovecot 的 SQL 认证配置、/opt/www/iredadmin/settings.py),单点改密码需同步这些文件。

5.2 /root/iRedMail-1.7.4/config 应答记录

安装时全部向导选择都在 config 文件(实测字段):

$ grep -E "^export (STORAGE|WEB_SERVER|BACKEND|USE_)" /root/iRedMail-1.7.4/config | head -8
export STORAGE_BASE_DIR='/var/vmail'
export WEB_SERVER='NGINX'
export BACKEND_ORIG='MARIADB'
export BACKEND='MYSQL'
export USE_IREDADMIN='YES'
export USE_ROUNDCUBE='YES'
export USE_NETDATA='YES'
export USE_FAIL2BAN='YES'

⚠️ config 文件含所有明文密码(MySQL root / postmaster 等),权限 600 仅 root 可读;重装同版本时把它拷回安装目录可实现无人值守复用(向导检测到即询问 Use existing config)。

六、Web 层配置(Nginx / PHP / Roundcube / iRedAdmin)

6.1 Nginx 站点结构

$ ls /opt/www/
iRedAdmin-2.6        iredadmin        roundcubemail        roundcubemail-1.6.11        well_known

解读:/opt/www/iredadmin 与 /opt/www/roundcubemail 是指向版本目录的软链,升级时换软链指向即可回滚。Nginx 站点由模板 /etc/nginx/templates/*.tmpl 生成 /etc/nginx/sites-enabled/ 下文件(Ubuntu 布局),包含 webmail 与 iredadmin 两个 location,默认 https-only(80 口 301 跳 443,实测见安装篇 5.3 节)。

6.2 Roundcube config.inc.php 关键项(实测)

$ sed -n '12,25p' /opt/www/roundcubemail/config/config.inc.php
$config['imap_host'] = 'tls://127.0.0.1:143';
...
// SMTP
$config['smtp_host'] = 'tls://127.0.0.1:587';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['smtp_auth_type'] = 'LOGIN';

(plugins 行见下;文件共 35 个 $config 项,以上为关键项。)逐项说明:

  • imap_host = tls://127.0.0.1:143:Webmail 的 IMAP 取信直连本机 Dovecot(STARTTLS;Roundcube 1.6 起用 imap_host 取代旧的 default_host+default_port)。
  • smtp_host = tls://127.0.0.1:587 + smtp_user = %u + smtp_pass = %p + smtp_auth_type = LOGIN:Webmail 代用户经 587 提交,%u/%p 注入登录账号与密码——与 587 的 reject_sender_login_mismatch 约束匹配,Webmail 代发身份恒等于登录用户。
  • plugins(实测原文):
$ grep -n "plugins" /opt/www/roundcubemail/config/config.inc.php
70:$config['plugins'] = array('managesieve', 'password', 'zipdownload');

解读:managesieve 提供网页端过滤器(写入 Dovecot sieve),password 允许用户在 Webmail 里自助改密,zipdownload 支持整箱打包下载。

6.3 iRedAdmin settings.py(实测)

iRedAdmin 自身配置在 /opt/www/iredadmin/settings.py(第 5 行 from libs.default_settings import * 继承默认值,settings.py 覆盖之)。实测关键项:

$ grep -vnE "^\s*#|^\s*$" /opt/www/iredadmin/settings.py | head -20
5:from libs.default_settings import *
10:webmaster = "postmaster@example.com"
13:default_language = 'en_US'
16:backend = 'mysql'
20:storage_base_directory = "/var/vmail/vmail1"
32:default_mta_transport = "dovecot"
38:min_passwd_length = 8
39:max_passwd_length = 0
44:iredadmin_db_host = "127.0.0.1"
45:iredadmin_db_port = "3306"
46:iredadmin_db_name = "iredadmin"
47:iredadmin_db_user = "iredadmin"
48:iredadmin_db_password = "<安装时随机生成>"
53:vmail_db_host = "127.0.0.1"
54:vmail_db_port = "3306"
55:vmail_db_name = "vmail"
56:vmail_db_user = "vmailadmin"
57:vmail_db_password = "<安装时随机生成>"
69:amavisd_enable_logging = True
71:amavisd_db_host = "127.0.0.1"

逐项说明:backend/storage_base_directory/default_mta_transport 与安装时选择一致;min_passwd_length = 8 是 iRedAdmin 建用户的最短密码(快速入门篇 PW_SHORTER_THAN_MIN_LENGTH 的阈值来源;大小写/数字/特殊字符开关在 iredadmin 库 settings 表,Admin 界面 → Admin Profile → Password Policy 可视化调整);iredadmin_db_* 与 vmail_db_* 分别是 iRedAdmin 自己的库与 vmail 库连接(密码为 iRedMail 随机生成,与 iRedMail.tips 中 vmailadmin 一致)。改完 systemctl restart iredadmin 生效。

6.4 iRedAPD settings.py(实测)

$ grep -E '^plugins = ' -A 1 /opt/iredapd/settings.py
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy", "sql_ml_access_policy"]

逐项说明:

插件作用
reject_null_sender拒绝空发件人(除非合理场景)
wblist_rdns反向解析黑白名单
reject_sender_login_mismatch587 提交时 MAIL FROM 必须等于登录账号
greylisting灰名单:新组合首次发信 450 临时拒,延迟重试放行
throttle发送/收件频率限速
amavisd_wblist与 Amavisd 白黑名单联动
sql_alias_access_policy / sql_ml_access_policy别名访问策略 / 邮件列表策略

增删插件改该列表后 systemctl restart iredapd 生效。

七、反垃圾与安全层配置(Amavisd / Fail2ban)

7.1 Amavisd 定制点(Ubuntu 实测)

Ubuntu 版 Amavisd 的 iRedMail 定制集中在 /etc/amavis/conf.d/50-user(Rocky 版为 /etc/amavisd/amavisd.conf 单文件)。核心定义(实测行号回显):

$ grep -nE '10024|10026|policy_bank|dkim_key|dkim_signing|dkim_verification' /etc/amavis/conf.d/50-user | head -10
45:$inet_socket_port = [10024, 10026, 10027, 9998];
47:$policy_bank{'MYNETS'} = {   # mail originating from @mynetworks
55:$interface_policy{'10026'} = 'ORIGINATING';
56:$policy_bank{'ORIGINATING'} = {
83:$policy_bank{'MLMMJ'} = {
86:    enable_dkim_signing => 1,   # enable DKIM signing for outbound
498:$enable_dkim_verification = 1;
501:dkim_key('example.com', 'dkim', '/var/lib/dkim/example.com.pem');

逐项说明:

  • $inet_socket_port = [10024, 10026, 10027, 9998]:Amavisd 同时监听 4 个口——10024 普通 SMTP 入站过滤、10026 提交通道(master.cf 的 submission 指向它)、10027 mlmmj 邮件列表通道、9998 管理接口。
  • $interface_policy{'10026'} = 'ORIGINATING' + $policy_bank{'ORIGINATING'}:提交通道走 ORIGINATING 策略组(本机认证用户外发),其中 enable_dkim_signing => 1 保证外发邮件做 DKIM 签名——快速入门篇日志 dkim_new=dkim:example.com 即此处的效果。
  • $enable_dkim_verification = 1:收信时验证对方域的 DKIM 签名。
  • dkim_key('example.com', 'dkim', '/var/lib/dkim/example.com.pem'):签名密钥定义(选择器 dkim),DNS 公钥用 amavisd-new showkeys 输出(真实回显见进阶篇)。
  • 打分策略:与 SpamAssassin 联动,本地白名单网段(MYNETS)标 ALL_TRUSTED(快速入门篇 Hits: -1 的来源)。

💡 技术拓展:反垃圾组件链路说明(iRedMail 默认链路 vs 其他组合)——邮件进入 Postfix 后依次经(1)postscreen 连接评估 + DNSBL 黑名单(25 口接入层);(2)iRedAPD 策略检查(灰名单/限速/登录不一致,SMTP 会话中调用);(3)Amavisd 内容过滤:内部调 SpamAssassin 按规则打分(超阈值标记或丢弃)+ ClamAV 病毒扫描;(4)结果写回 Amavisd 数据库供 iRedAdmin 展示与黑白名单管理。与 Mailcow「Rspamd 一体化引擎」不同,iRedMail 用 SpamAssassin+Amavisd 经典组合:规则可读性好、生态成熟,但性能与自适应学习略逊于 Rspamd。排障分流口诀:连接被拒查 postscreen/iRedAPD,被判垃圾查 SpamAssassin 打分,疑似病毒查 ClamAV。

7.2 Fail2ban jail.local(实测)

$ grep -E '^\[|^enabled|^maxretry|^bantime' /etc/fail2ban/jail.local | head -14
[DEFAULT]
bantime     = 3600
maxretry    = 5

iRedMail 生成的 jail.local 含 DEFAULT(封禁 1 小时、5 次触发)与 dovecot/postfix 等监狱段(启用状态按安装组件)。改阈值后 systemctl restart fail2ban;封禁视图 fail2ban-client status dovecot。

八、MariaDB 配置与备份脚本挂载

安装时选择使用 iRedMail 调优版 my.cnf(实测覆盖 /etc/mysql/my.cnf,要点:innodb_buffer_pool_size 按内存比例、连接数、日志周期调优),手工调优请先备份原文件。定时任务挂载(实测 root crontab 节选):

30   3   *   *   *   /bin/bash /var/vmail/backup/backup_mysql.sh

# iRedAPD: Clean up expired tracking records hourly.
1   *   *   *   *   python3 /opt/iredapd/tools/cleanup_db.py >/dev/null

# iRedAPD: Convert SPF DNS record of specified domain names to IP
#          addresses/networks hourly.
2   *   *   *   *   python3 /opt/iredapd/tools/spf_to_greylist_whitelists.py >/dev/null

逐项说明:每日 3:30 备份 vmail 数据库(脚本与产物见进阶篇实测);每小时清理 iRedAPD 追踪记录与灰名单库;spf_to_greylist_whitelists.py 把域的 SPF 记录解析成 IP 白名单喂给灰名单插件,避免大厂邮件被灰名单卡住。

九、改配置的标准动作速查

改动动作
main.cf / master.cfpostconf -e(或编辑文件)→ systemctl reload postfix
/etc/postfix/mysql/*.cf改完 systemctl reload postfix
dovecot.conf 或 iredmail/*.confsystemctl restart dovecot
Amavisd 50-usersystemctl restart amavis(Ubuntu)/ amavisd(Rocky)
Roundcube config.inc.php即时生效(PHP-FPM 无需重启;改 PHP 层才 systemctl restart php8.1-fpm)
iRedAdmin settings.pysystemctl restart iredadmin
iRedAPD settings.pysystemctl restart iredapd
Fail2ban jail.localsystemctl restart fail2ban
Nginx 模板 templates/*.tmpl重新生成 sites-enabled 后 systemctl reload nginx

十、参考链接