脚本介绍
本文档详细介绍 DebNAS 自动化脚本的所有功能模块,既是功能说明,也是使用手册。脚本采用模块化设计,每个功能均可独立运行,支持多选批量执行。
💡 快速索引:如需快速查找功能,请查看 项目概览 文档。
使用说明
基本特性
- 模块化设计:每个功能模块均可独立运行,互不依赖
- 批量执行:支持多选批量执行,提高配置效率
- 交互式操作:提供友好的交互界面,操作简单直观
- 自动依赖处理:自动检测并安装缺失的依赖工具
推荐使用流程
- 新手用户:建议使用「七、一键部署」功能,快速完成环境配置
- 进阶用户:可根据需求选择「一、基础配置」→「二、管理面板」→「五、容器管理」的顺序逐步配置
- 安全优先:建议配置「三、通知服务」和「四、安全防护」模块,提升系统安全性
功能详情
一、基础配置
1.1、配置软件源
功能说明:使用 chsrc 工具进行软件源管理,支持 Debian 12/13 系统。自动将旧版 sources.list 转换为 DEB822 格式(/etc/apt/sources.list.d/debian.sources)。
使用方式:
- 测速换源:自动测速并切换至最快的镜像源(推荐)
- 自选镜像源:从可用镜像源列表中选择指定镜像源
- 自定义镜像源:手动输入自定义镜像源 URL(必须包含
/debian,格式:https://镜像域名/debian)
特殊模式:
- 支持无人值守模式(
--auto),自动使用维护团队测速第一的镜像源,适用于一键部署场景
注意事项:
- 脚本会自动备份旧版
sources.list文件 - 转换后的 DEB822 格式包含 main、contrib、non-free、non-free-firmware 组件
- 自动配置安全更新源(
${CODENAME}-security)
1.2、安装基础工具
功能说明:安装系统运行所需的基础软件包,并配置用户权限。
安装的软件包:
sudo- 权限管理工具curl、wget- 网络下载工具git- 版本控制工具vim- 文本编辑器exim4- 邮件服务(用于系统通知)gnupg- GPG 加密工具apt-transport-https、ca-certificates- HTTPS 支持smartmontools- 硬盘健康监测工具
自动配置:
- 自动将第一个创建的普通用户(UID >= 1000,排除 nobody)加入 sudo 组
- 自动执行
apt update更新软件包列表
使用场景:系统初始化时首先执行,为后续功能提供基础环境。
二、管理面板
2.1、安装 Cockpit
功能说明:安装 Cockpit Web 管理面板及其扩展组件,提供图形化的系统管理界面。
系统支持:
- Debian 12 (bookworm):通过 45Drives 官方软件源安装组件
- Debian 13 (trixie):手动下载并安装 45Drives 组件(.deb 包)
安装的组件:
- 核心组件:cockpit、pcp、python3-pcp、tuned
- 45Drives 扩展组件:
- Navigator - 文件浏览器
- File Sharing - 文件共享管理
- Identities - 用户身份管理
智能下载:
- 自动选择最优 GitHub 镜像源下载组件(支持多个镜像站,自动测速)
- 支持镜像站:ghfast.top、gitproxy.click、hubproxy.jiaozi.live、gh.llkk.cc、gh-proxy.top
自动配置:
- 配置 Cockpit 首页展示信息
- 设置自动注销闲置会话(15 分钟)
- 配置登录界面公告
- 获取外网访问真实 IP 地址
- 设置登录屏幕的浏览器标题为 "HomeNAS"
- 配置 APT Pinning,确保从 backports 仓库安装最新版本
访问方式:安装完成后,通过 https://服务器IP:9090 访问 Cockpit 管理界面。
注意事项:
- Cockpit 默认禁用 root 账户登录,建议使用普通用户账户登录
- 首次登录建议使用系统安装时创建的第一个用户账户
2.2、安装虚拟机组件
功能说明:安装 cockpit-machines 组件,在 Cockpit 中提供虚拟机管理功能。
安装内容:
- 安装
cockpit-machines组件(虚拟机管理组件) - 启用 IP 包转发功能(
net.ipv4.ip_forward = 1),解决虚拟机 IP 分配问题 - 自动配置 APT Pinning(如未配置)
- 自动重启 Cockpit 服务使新组件生效
使用场景:需要在 Cockpit 中管理虚拟机时使用。
注意事项:
- 需要系统支持虚拟化(CPU 支持 vmx 或 svm)
- IP 包转发配置写入
/etc/sysctl.d/99-debnas.conf - 自动注释
/etc/sysctl.conf中的重复配置项
2.3、启用外网访问
功能说明:配置 Cockpit 允许通过外网域名访问,提升远程管理便利性。
配置方式:
- 输入外网访问域名(如
baidu.com或baidu.com:9090,无需包含协议前缀) - 脚本自动配置 Origins 参数,同时保留内网 IP 访问权限
- 配置写入
/etc/cockpit/cockpit.conf
配置效果:
- 可通过外网域名访问:
https://your-domain.com:9090 - 可通过内网 IP 访问:
https://内网IP:9090 - 自动重启 Cockpit 服务使配置生效
使用场景:需要通过外网访问 Cockpit 管理界面时使用。
注意事项:
- 启用外网访问后,Cockpit 只能通过配置的域名和内网 IP 访问
- 如需修改域名,可先执行「2.4、禁用外网访问」,再重新配置
2.4、禁用外网访问
功能说明:删除 Cockpit 外网访问限制,恢复为仅内网访问模式。
操作内容:
- 删除
/etc/cockpit/cockpit.conf中的 Origins 配置 - 删除后可通过内网任意 IP 地址访问
- 自动重启 Cockpit 服务使配置生效
使用场景:
- 外网访问域名变更,需要重新配置时
- 内网 IP 地址变更,导致无法访问时
- 需要取消外网访问限制时
2.5、面板管理网络
功能说明:将系统网络管理工具切换为 NetworkManager,使 Cockpit 能够管理网络配置。
操作内容:
- 将系统网络管理工具从
network切换为NetworkManager - 注释
/etc/network/interfaces中的配置,避免与 NetworkManager 冲突 - 配置 NetworkManager 的
managed=true - 重启 NetworkManager 和 Cockpit 服务
使用场景:需要在 Cockpit 面板中管理网络配置时使用。
注意事项:
- ⚠️ 重要:更换网络管理工具可能会产生 IP 变动
- 如更换后原 IP 无法正常访问服务,请确认是否分配了新 IP 地址
- 建议在本地控制台或通过其他方式保持连接的情况下执行
2.6、面板必应壁纸
功能说明:配置 Cockpit 登录界面自动使用必应每日壁纸作为背景,提升界面美观度。
功能特性:
- 自动下载并应用必应每日壁纸
- 支持自定义 Cron 表达式设置壁纸更新频率(默认每天 0 点更新)
- 支持启用、禁用、查看定时任务功能
- 自动生成登录页样式文件,优化视觉效果
- 自动更新
/etc/cockpit/issue.cockpit显示壁纸信息
使用方式:
- 启用:配置 Cron 表达式(默认
0 0 * * *表示每天 0 点更新) - 禁用:移除定时任务和壁纸文件
- 查看:查看当前配置的定时任务
技术要求:
- 需要 Cockpit 版本 >= 347
- 自动检测 Cockpit 版本,版本过低会提示错误
注意事项:
- 首次启用时会立即下载并应用壁纸
- 脚本会复制到
/etc/cockpit/branding/目录,支持定时任务自动运行
三、通知服务
3.1、配置邮件账户
功能说明:配置 exim4 邮件服务,使系统能够发送邮件通知。
邮箱要求:
- ⚠️ 仅支持 QQ 邮箱:需要提前准备好发送邮件的 QQ 邮箱账户和授权密码
- 授权码获取帮助:https://service.mail.qq.com/detail/0/75
配置内容:
- 配置 SMTP 服务器:
smtp.qq.com:587 - 设置系统通知接收邮箱地址(用于接收系统告警邮件)
- 配置 exim4 为 satellite 模式
- 自动发送测试邮件验证配置是否成功
配置文件位置:
/etc/exim4/update-exim4.conf.conf- exim4 主配置/etc/exim4/passwd.client- SMTP 认证信息/etc/email-addresses- 系统邮件地址映射/etc/exim4/notify_email- 通知接收邮箱地址
使用场景:需要接收系统告警、登录通知等邮件时,必须先配置此功能。
注意事项:
- 授权密码不是 QQ 邮箱登录密码,需要在 QQ 邮箱设置中单独生成
- 配置完成后会自动发送测试邮件,请检查接收邮箱
3.2、启用登录通知
功能说明:实现系统用户登录时自动发送邮件告警通知,及时发现异常登录行为。
工作原理:
- 通过 PAM 脚本(
/etc/pam.d/login-notify.sh)在用户登录时自动触发 - 集成到
/etc/pam.d/common-session,支持 SSH、Cockpit 等所有登录方式
邮件内容:
- 用户信息:登录用户名
- 来源信息:来源 IP 地址、地理位置(自动识别)
- 系统信息:主机名、登录时间、服务类型、终端类型
- 处置指引:提供锁定账户、断开连接、查看登录记录等操作建议
- Trace ID:8 位追踪 ID,便于问题定位
地理位置识别:
- 自动识别本地登录(127.0.0.1、localhost)
- 自动识别局域网登录(192.168.x.x、10.x.x.x、172.16-31.x.x)
- 外网登录自动通过 IP-API 获取地理位置信息(国家、城市)
使用场景:
- 安全监控:及时发现异常登录行为
- 访问审计:记录所有用户登录活动
- 账户安全:快速响应账户泄漏事件
前置条件:必须先执行「3.1、配置邮件账户」功能。
注意事项:
- 登录通知脚本需要 curl 工具获取地理位置信息(如未安装会自动降级处理)
- 邮件发送失败不会影响用户登录(使用
|| true确保脚本不中断登录流程)
3.3、禁用登录通知
功能说明:移除登录邮件通知功能,停止发送登录告警邮件。
操作内容:
- 从
/etc/pam.d/common-session中移除登录通知配置 - 删除登录通知脚本文件
/etc/pam.d/login-notify.sh
使用场景:不再需要登录通知功能时使用。
四、安全防护
4.1、基础安全配置
功能说明:配置系统基础安全策略,包括权限限制、会话管理和操作审计。
安全策略:
限制 su 命令
- 限制非 sudo 组用户使用 su 命令切换到 root 用户
- 配置位置:
/etc/pam.d/su - 只有 sudo 组成员才能使用 su 命令
超时自动注销
- 设置 15 分钟无操作自动退出登录(TMOUT=900)
- 配置位置:
/etc/profile - 适用于所有用户会话
操作日志记录
- 记录所有用户的登录和操作日志到
/var/log/history/目录 - 每个用户有独立的日志目录:
/var/log/history/${LOGNAME}/ - 日志文件命名格式:
${USER}@${USER_IP}_${时间戳} - 目录权限:1733(sticky bit,所有用户可写,防止互删)
- 记录所有用户的登录和操作日志到
命令历史增强
- 启用命令历史时间戳(HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S ")
- 设置命令历史大小为 4096
使用场景:系统安全加固,提升系统安全性和可审计性。
注意事项:
- 操作日志目录会自动创建,权限设置为 1733
- 日志文件包含用户 IP 地址,便于追踪操作来源
4.2、安装 Firewalld
功能说明:安装并配置 firewalld 防火墙服务,提供网络访问控制。
安装内容:
- 安装
firewalld防火墙服务 - 自动禁用 UFW 防火墙(如存在),避免冲突
- 配置默认放行端口
默认放行端口:
22- SSH 服务546- dhcpv6-client 服务9090- Cockpit 管理面板
管理方式:
- 可通过 Cockpit 面板网络选项手动添加其他端口
- 支持通过命令行
firewall-cmd管理
配置文件:
/etc/firewalld/zones/public.xml- 公共区域配置
使用场景:需要控制网络访问,防止未授权访问时使用。
注意事项:
- ⚠️ 重要:安装防火墙后需重启系统以确保服务正常
- 安装完成后,firewalld 服务会停止,需要手动启动或重启系统
- 可通过
systemctl status firewalld查看服务状态
4.3、安装 Fail2ban
功能说明:安装并配置 Fail2ban 防暴力攻击服务,自动封禁恶意 IP。
防护机制:
- 触发条件:登录失败 5 次
- 封禁时长:1 小时
- 防护服务:SSH、Cockpit(通过 pam-generic)
告警通知:
- 自动读取邮件配置(
/etc/exim4/notify_email),发送告警通知 - 告警邮件包含:
- 被攻击服务名称
- 主机信息(主机名、外网 IP)
- 攻击者 IP 地址
- 攻击次数
- 攻击者 IP 详细信息(通过 API 获取)
封禁方式:
- 使用
firewallcmd-ipset作为封禁动作(适配 Firewalld) - 通过 Firewalld 的 ipset 功能实现 IP 封禁
配置文件:
/etc/fail2ban/jail.local- 主配置文件/etc/fail2ban/action.d/mail-whois.local- 邮件告警配置/etc/fail2ban/jail.d/defaults-debian.conf- PAM 通用配置
使用场景:需要防止暴力破解攻击时使用。
前置条件:
- 建议先配置「4.2、安装 Firewalld」(Fail2ban 使用 Firewalld 进行封禁)
- 建议先配置「3.1、配置邮件账户」(用于接收告警邮件)
注意事项:
- Fail2ban 使用 systemd 作为后端(backend = systemd)
- 默认忽略本地 IP(127.0.0.1/8、::1),避免误封
4.4、IP 封禁工具
功能说明:安装并配置基于 IPThreat 威胁情报的 IP 封禁工具,自动封禁已知威胁 IP。
功能特性:
- 基于 IPThreat 威胁情报数据库,自动获取威胁 IP 列表
- 支持自动更新威胁 IP 列表,通过 Firewalld 实现 IP 封禁
- 支持 IPv4 和 IPv6 封禁
- 自动管理 ipset 集合,支持大量 IP 地址封禁(最多 65536 个 IP)
配置选项:
- 威胁等级:可配置威胁等级(默认 50,范围 0-100)
- 更新频率:可配置更新频率(默认每天 0、6、12、18 点更新)
- 封禁区域:使用 Firewalld 的 drop 区域进行封禁
工作流程:
- 从 IPThreat 下载威胁 IP 列表(根据威胁等级)
- 验证 IP 地址有效性
- 处理 IP 范围和 CIDR 格式
- 通过 Firewalld 的 ipset 功能封禁 IP
- 自动创建定时任务,定期更新威胁列表
配置文件:
/etc/firewalld/ipthreat/ipthreat.conf- 主配置文件/etc/firewalld/ipthreat/firewalld_ipthreat.sh- 更新脚本/var/log/firewalld_ipthreat.log- 操作日志
使用场景:需要主动防护,封禁已知威胁 IP 时使用。
前置条件:必须先安装 Firewalld(「4.2、安装 Firewalld」)。
注意事项:
- 威胁等级数值越高,筛选越严格,最终封禁的 IP 数量越少;数值越低,策略越宽松,封禁的 IP 数量越多
- 首次运行会下载并封禁威胁 IP,可能需要一些时间
- 支持手动执行更新脚本:
/etc/firewalld/ipthreat/firewalld_ipthreat.sh
五、容器管理
5.1、安装 Docker
功能说明:安装 Docker CE 社区版及相关组件,提供容器运行环境。
智能镜像源选择:
- 自动检测系统配置的镜像源,优先使用系统镜像源
- 如果系统使用 Debian 官方源,则使用 Docker 官方源
- 如果系统使用国内镜像源,则尝试使用对应的 Docker 镜像源
- 支持多个备用镜像源(清华大学、中科大、阿里云、腾讯云、华为云)
- 自动测试镜像源可用性,选择最优镜像源
安装的组件:
docker-ce- Docker 社区版引擎docker-ce-cli- Docker 命令行工具containerd.io- 容器运行时docker-buildx-plugin- 构建扩展插件docker-compose-plugin- Docker Compose 插件
自动配置:
- 自动将第一个创建的普通用户(UID >= 1000)加入 docker 组
- 自动启动 Docker 服务并设置为开机自启
系统要求:
- 支持 Debian 12/13 系统
- 建议内存 >= 1GB,磁盘空间 >= 10GB
使用场景:需要运行 Docker 容器时使用。
注意事项:
- 安装前会自动检查系统兼容性和资源情况
- 用户加入 docker 组后,需要重新登录才能使用 docker 命令(无需 sudo)
5.2、镜像加速
功能说明:配置 Docker 镜像加速地址,提升国内镜像拉取速度。
镜像加速地址:
https://docker.m.ixdev.cnhttps://docker.1ms.runhttps://docker.1panel.live
功能特性:
- 自动合并多个镜像加速地址(自动去重)
- 自动保留已有镜像加速配置
- 自动重启 Docker 服务使配置生效
配置文件:/etc/docker/daemon.json
使用场景:国内环境需要加速 Docker 镜像拉取时使用。
注意事项:
- 配置会合并到现有配置中,不会覆盖其他 Docker 配置
- 如果已有镜像加速配置,新配置会追加到列表中
5.3、安装应用
功能说明:交互式批量安装常用 Docker 容器应用,简化容器部署流程。
功能特性:
- 交互式菜单选择,支持多选批量安装
- 支持安装全部应用(选择 99)
- 应用列表按字母顺序排序显示
- 仅支持 Docker Compose 方式部署
- 自动检测容器是否已存在,避免重复部署
容器应用:
- 具体应用列表见
config/containers.conf配置文件 - 包括但不限于:dockge、portainer 等常用容器应用
部署方式:
- 使用
docker compose命令部署 - Compose 文件位于
docker-compose/目录 - 每个容器使用独立的项目名称(project name)
使用场景:需要快速部署常用 Docker 容器应用时使用。
前置条件:必须先安装 Docker(「5.1、安装 Docker」)。
注意事项:
- 如果容器已存在,会跳过部署
- 部署过程中会显示详细的日志信息
5.4、备份恢复
功能说明:Docker 容器与数据卷的备份与恢复工具,支持灵活的备份策略。
备份功能:
备份目录:
- 默认备份:
/var/lib/docker、/etc/docker、/opt/docker - 支持自定义备份目录(通过配置文件)
- 支持排除指定目录
- 默认备份:
备份流程:
- 备份前自动停止 Docker 服务(确保数据一致性)
- 使用 tar 和 rsync 进行备份
- 备份后自动启动 Docker 服务
- 生成操作日志文件
备份管理:
- 支持自定义备份文件存储路径
- 自动版本管理(备份目录命名:
docker_v1、docker_v2等) - 生成详细的备份统计信息(文件数量、大小等)
配置文件:
- 默认配置:
config/docker_backup.conf - 在线配置:https://raw.githubusercontent.com/kekylin/debnas/refs/heads/main/config/docker_backup.conf
- 支持自定义配置文件路径
- 默认配置:
恢复功能:
恢复模式:
- 清空恢复:先清空目标目录再恢复(完全覆盖)
- 增量恢复:覆盖同名文件,保留目标目录中备份源没有的文件
恢复流程:
- 恢复前自动停止 Docker 服务
- 使用 rsync 进行文件同步
- 恢复后自动启动 Docker 服务
- 生成操作日志文件
使用场景:
- 系统迁移:备份 Docker 数据以便迁移到新系统
- 数据保护:定期备份 Docker 数据,防止数据丢失
- 灾难恢复:系统故障后快速恢复 Docker 环境
注意事项:
- ⚠️ 重要:备份和恢复会停止 Docker 服务,期间所有容器将不可用
- 备份前请确保有足够的磁盘空间
- 恢复操作会覆盖目标目录,请谨慎操作
- 建议在系统维护时间窗口执行备份恢复操作
六、系统工具
6.1、检查兼容性
功能说明:系统兼容性检查工具,检查系统是否符合脚本运行要求,帮助提前发现潜在问题。
检查模式:
基础检查:
- 系统信息:操作系统版本、架构、主机名、内核版本
- 运行指标:系统负载、内存使用、磁盘使用、运行时长
- 硬件信息:CPU 型号、核心数、总内存、磁盘分区
- 网络状态:网络连通性测试、DNS 解析测试
- 资源检查:内存是否 >= 512MB、磁盘空间是否 >= 5GB
增强检查(在基础检查基础上增加):
- 时间同步:NTP 同步状态检查
- 虚拟化支持:CPU 虚拟化能力检查(vmx/svm)
- 服务状态:SSH、Cron 等服务运行状态
- 安全模块:AppArmor 启用状态
- 磁盘健康:SMART 健康状态检查
输出内容:
- 详细的系统信息报告
- 检查结论(适合/存在风险)
- 发现的问题列表
使用场景:
- 脚本运行前检查系统环境
- 系统迁移前评估兼容性
- 故障排查时收集系统信息
6.2、检查系统更新
功能说明:系统更新检查与邮件通知工具,自动检测系统可用更新并发送邮件通知。
功能模式:
立即执行检测:
- 检查系统可用的软件包更新
- 区分安全更新和常规更新
- 显示更新列表和统计信息
- 格式:
包名 旧版本 → 新版本
定时检测:
- 每日检测:每天 00:00 执行
- 每周检测:每周一 00:00 执行
- 自定义检测:支持自定义 Cron 表达式
邮件通知:
- 自动发送邮件通知(需要先配置邮件账户)
- 邮件内容包含:
- 更新摘要(总更新数、安全更新数、常规更新数)
- 安全更新列表(详细版本信息)
- 常规更新列表(详细版本信息)
- 检测时间
定时任务管理:
- 支持查看当前定时任务
- 支持移除定时任务
- 定时任务脚本:
~/.system-update-checker.sh
使用场景:
- 定期检查系统更新,及时获取安全补丁
- 自动化更新通知,无需手动检查
前置条件:建议先配置「3.1、配置邮件账户」,以便接收更新通知。
注意事项:
- 定时任务使用独立的轻量脚本,不依赖项目目录
- 仅在检测到更新时才发送邮件通知
6.3、查询服务状态
功能说明:查询通过脚本安装的服务的访问地址及端口,快速了解服务运行状态。
检查内容:
系统服务:
- Cockpit 服务状态检查
- 如未运行则尝试启动
- 显示访问地址:
https://服务器IP:9090
Docker 容器:
- 检查以下容器运行状态:
dockge- http://服务器IP:5001portainer- https://服务器IP:9443
- 仅显示正在运行的容器
- 检查以下容器运行状态:
安全服务提示:
- Firewalld 防火墙安装状态
- Fail2ban 服务安装状态
使用场景:
- 快速查看所有服务的访问地址
- 检查服务运行状态
- 系统维护时确认服务可用性
注意事项:
- 服务地址使用服务器第一个 IP 地址(
hostname -I | awk '{print $1}') - 容器检查基于容器名称,如果容器名称不同则不会显示
6.4、更新 Hosts 文件
功能说明:自动更新 /etc/hosts 文件,解决 GitHub、Docker、TMDB 等服务的访问问题。
支持的域名:
- GitHub 相关:github.com、raw.githubusercontent.com、github.io 等 30+ 个 GitHub 域名
- TMDB 相关:themoviedb.org、api.themoviedb.org 等 TMDB 服务域名
- 其他服务:OpenSubtitles、Fanart 等
智能 IP 选择:
- 通过多 DNS 并行解析(AliDNS、TencentDNS、BaiduDNS、DNS114)
- 三级连通性检测(DNS 解析 → HTTP 连接 → 内容验证)
- 自动选择最优 IP 地址(每个域名最多保留 1 个 IP)
更新方式:
- 单次更新:立即执行一次更新
- 定时更新:支持自定义 Cron 表达式设置定时更新
文件管理:
- 自动管理 hosts 文件中的 DebNAS 标记区域
- 标记区域:
# DebNAS Hosts Start到# DebNAS Hosts End - 更新时自动替换标记区域内容,不影响其他配置
使用场景:
- 国内环境访问 GitHub、Docker 等服务时使用
- 解决 DNS 解析问题,提升访问速度
注意事项:
- 更新会替换标记区域内容,请勿在标记区域内手动添加配置
- 定时更新需要配置 Cron 任务
6.5、安装 Tailscale
功能说明:安装并配置 Tailscale 内网穿透服务,实现安全的点对点网络连接。
安装内容:
- 添加 Tailscale 的包签名密钥
- 添加 Tailscale 软件源(bookworm 版本)
- 安装
tailscale软件包
后续操作:
- 安装完成后,需要手动运行
tailscale up进行身份验证 - 访问 Tailscale 官网完成设备认证
- 认证后即可通过 Tailscale 网络访问服务器
使用场景:
- 需要从外网安全访问内网服务器时使用
- 建立安全的点对点网络连接
- 无需公网 IP 和端口转发
注意事项:
- Tailscale 是免费服务,但需要注册账户
- 安装后需要手动完成身份验证才能使用
6.6、ACL 权限管理
功能说明:交互式 ACL(访问控制列表)权限管理工具,提供灵活的权限控制。
功能特性:
- 查看 ACL:查看文件或目录的 ACL 权限
- 设置用户 ACL:为指定用户设置 ACL 权限(支持递归)
- 设置组 ACL:为指定组设置 ACL 权限(支持递归)
- 设置默认 ACL:为目录设置默认 ACL(新建文件继承)
- 删除 ACL:删除文件或目录的 ACL 权限(支持递归)
- 批量操作:支持递归设置,批量处理目录树
权限格式:
- 支持标准权限格式:
r(读)、w(写)、x(执行) - 支持组合权限:
rwx、rw、r等 - 自动验证权限格式有效性
操作日志:
- 所有 ACL 操作记录到
/var/log/homenas_acl_manager.log - 日志包含:操作类型、路径、用户/组、权限、时间戳
自动依赖处理:
- 自动检测并安装缺失的 ACL 工具(getfacl、setfacl)
- 如未安装,自动执行
apt install -y acl
使用场景:
- 需要为不同用户/组设置不同的文件访问权限时使用
- 实现细粒度的权限控制
- 共享目录权限管理
注意事项:
- ACL 权限需要文件系统支持(ext4、xfs 等)
- 递归设置会影响目录下所有文件和子目录
- 操作前会要求确认,避免误操作
6.7、BBR 算法管理
功能说明:BBR(Bottleneck Bandwidth and Round-trip propagation time)拥塞控制算法管理工具,优化网络传输性能。
功能模式:
- 启用 BBR:临时启用或永久启用 BBR 算法
- 禁用 BBR:临时禁用或永久禁用 BBR 算法
- 查看状态:查看当前拥塞控制算法和队列规则
BBR 优势:
- 提升网络传输速度,特别是在高延迟网络中
- 减少网络拥塞,提高带宽利用率
- Google 开发的现代拥塞控制算法
配置内容:
- 设置
net.ipv4.tcp_congestion_control = bbr - 设置
net.core.default_qdisc = fq - 自动加载 BBR 内核模块(tcp_bbr)
配置位置:
- 永久配置:
/etc/sysctl.d/99-debnas.conf - 自动注释
/etc/sysctl.conf中的重复配置项
使用场景:
- 需要优化网络传输性能时使用
- 特别是在高延迟网络环境中
- 提升下载、上传速度
注意事项:
- BBR 需要内核支持(Linux 4.9+)
- 永久启用需要重启系统或重启网络服务
- 临时启用立即生效,但重启后失效
七、一键部署
一键部署功能可以自动执行多个模块,快速完成系统环境配置,适合新手用户或需要快速部署的场景。
7.1、一键部署基础环境
功能说明:自动执行基础环境配置,快速搭建可用的 NAS 系统。
执行流程(按顺序自动执行):
- 配置软件源(无人值守模式)- 使用维护团队测速第一的镜像源
- 安装基础工具 - 安装必备软件包并配置 sudo 权限
- 安装 Cockpit 面板 - 安装 Web 管理界面
- 设置 Cockpit 网络访问 - 切换为 NetworkManager 网络管理
- 安装 Docker - 安装容器运行环境
- 添加 Docker 镜像加速 - 配置国内镜像加速
- 安装服务查询工具 - 安装服务状态查询脚本
适用场景:
- 快速搭建基础 NAS 环境
- 新手用户首次部署
- 测试环境快速配置
执行时间:约 10-20 分钟(取决于网络速度)
注意事项:
- 执行过程中如遇到错误会自动中断
- 建议在网络稳定的环境下执行
- 执行完成后会显示服务访问地址
7.2、一键部署安全环境
功能说明:自动执行完整的安全环境配置,包含基础环境 + 安全防护 + 邮件通知。
执行流程(按顺序自动执行):
- 配置软件源(无人值守模式)
- 安装基础工具
- 安装 Cockpit 面板
- 设置 Cockpit 网络访问
- 设置发送邮件账户 - ⚠️ 需要交互输入 QQ 邮箱信息
- 启用登录邮件通知 - 配置登录告警
- 配置基础安全防护 - su 限制、超时注销、操作日志
- 安装防火墙服务 - Firewalld 防火墙
- 安装 Fail2ban 自动封锁 - 防暴力攻击
- 安装 Docker
- 添加 Docker 镜像加速
- 安装服务查询工具
适用场景:
- 生产环境部署
- 需要安全防护的场景
- 需要邮件通知的场景
执行时间:约 15-25 分钟(取决于网络速度和交互输入)
注意事项:
- ⚠️ 需要交互输入:执行到「设置发送邮件账户」时需要输入 QQ 邮箱信息
- 执行过程中如遇到错误会自动中断
- 安装防火墙后需要重启系统(脚本会提示)
- 建议在网络稳定的环境下执行
与基础版的区别:
- 增加了邮件通知配置(步骤 5-6)
- 增加了安全防护配置(步骤 7-9)
- 更适合生产环境使用
零、退出
退出脚本,返回系统命令行。
