外观
ClamAV 病毒扫描(官方插件)
完成后,NAS 会定期扫描指定的共享文件夹,发现病毒时按你选的方式处置,也可以对选定的文件夹做实时后台扫描。病毒库由插件自动更新。
适合谁
- NAS 上存着 Windows 电脑、U 盘放进来的文件,想在共享里多一道检查。
- 作为文件交换区(别人上传的文件夹)的把关。
要先知道它防什么、不防什么:ClamAV 是基于特征库的扫描器,主要发现已知的恶意文件,尤其是 Windows 上的。它不能阻止勒索软件加密你的文件,也不能替代备份。防勒索靠的是独立的、客户端改不了的备份,见 备份策略。
「立即删除」会直接删文件,误报也会被删
- 影响范围:计划扫描的 受感染的文件(Infected files)可以选 立即删除,被判为病毒的文件直接被删,没有回收站。杀毒软件会有误报。选 移到隔离区 则是把文件移走,原位置就没有这个文件了。实时后台扫描默认开启了「发现恶意文件时阻止访问」。
- 前置条件:先用默认的 空操作 跑几次,看扫描结果是不是可信;要用隔离区,准备一个专用的共享文件夹,不要通过 SMB 共享出去;重要数据有独立备份。
- 怎么回退:取消勾选 已启动(Enabled),保存并应用,扫描和实时监控都会停止。被移到隔离区的文件,可以从那个共享文件夹里拿回来;被删除的只能靠备份找回。
插件信息
| 项 | 内容 |
|---|---|
| 包名 | openmediavault-clamav |
| 来源 | 官方插件,不需要 omv-extras |
| OMV 8 状态 | 截至 2026-10-18 的官方软件源为 8.0.3-1(amd64、arm64),要求 OMV 8.5.10 及以上 |
| 菜单位置 | 服务 → 防病毒(Services → Antivirus),三个标签:设置(Settings)、实时后台扫描(On Access Scans)、扫描计划(Scheduled Scans);状态在 诊断 → 服务 → 防病毒(Diagnostics → Services → Antivirus) |
| 依赖 | clamav-daemon(0.102 及以上)、clamav-freshclam、clamdscan |
在 系统 → 插件(System → Plugins)里安装。
它占用多少资源
ClamAV 的守护进程 clamd 会把病毒库载入内存,常驻运行,扫描时 CPU 和磁盘读取都会升高。小内存的 NAS 要留意,以你机器上 free -h 的实际占用为准。扫描并发线程数默认等于 CPU 核数,可以用环境变量 OMV_CLAMAV_CLAMD_MAXTHREADS 调低,用法见 环境变量。
配置与使用
1. 启用并更新病毒库
服务 → 防病毒 → 设置:
| 字段 | 默认值 | 说明 |
|---|---|---|
| 已启动(Enabled) | 关 | |
| 检查数据库(Database checks) | 24 | 每天检查病毒库更新的次数,0 表示不更新 |
| 隔离区(Quarantine) | 空 | 选一个共享文件夹,移到隔离区时放在这里 |
| 完整日志文件(Log clean files) | 关 | 把没问题的文件也记进日志,日志会大幅增长 |
| 扫描便携执行文件、OLE2、HTML、PDF、ELF、归档 | 开 | 对应各类文件的深入分析 |
| 检测损坏的可执行文件、损坏的媒体、PUA | 关 | 可能带来更多误报,按需开启 |
| 检测算法(Algorithmic detection) | 开 | |
| 跟随目录符号链接、文件符号链接 | 关 | |
| 扩展选项(Extra options) | 空 | 追加到 clamd.conf,语法见 clamd.conf 手册 |
保存,点黄色提示条上的应用。第一次应用会等病毒库下载完成,最长约几分钟。病毒库来自 ClamAV 的官方服务器,NAS 要能上网;如果你在 网络 → 代理(Network → Proxy)配了代理,更新会走代理。
2. 计划扫描
服务 → 防病毒 → 扫描计划 → 创建(Create):
| 字段 | 说明 |
|---|---|
| 已启动 | 启用这条计划 |
| 共享文件夹(Shared folder) | 要扫描的位置,必填 |
| 执行的时间(Time of execution) | cron 风格,选分钟、小时、日期、月份、星期 |
| 受感染的文件(Infected files) | 空操作(默认,只在输出里报告)、移到隔离区、立即删除 |
| 多线程扫描(Multiscan) | 用多个线程并行扫描目录,更快,占用也更多 |
| 详细(Verbose) | 输出更详细 |
| 发送 Email(Send email) | 把扫描输出发给管理员,需要先配好通知,见 配置邮件通知 |
| 标签(Tags) | 备注,也会出现在邮件标题里 |
扫描用 clamdscan 以 root 执行,由 /etc/cron.d/openmediavault-clamdscan 计划。同一条计划上一次还没结束,新的一次会直接退出。
建议:先选 空操作,每周一次,错开备份和高峰时段;稳定后再决定是否用隔离区。
3. 实时后台扫描(可选)
服务 → 防病毒 → 实时后台扫描 → 创建,选一个共享文件夹并勾选启用。启用后,系统会启动 clamav-onaccess 服务,监视这个文件夹,有文件被打开时就扫描。发现恶意文件时会阻止访问。
只对别人会上传文件的文件夹用它。把它加在大型媒体库上,每次读取都要扫描,会明显拖慢速度。
4. 它不会扫描什么
- 大于 100 MB 的文件默认不扫描(
clamd的MaxFileSize,OMV 沿用上游默认值 100M),上游还说明目前无法扫描大于 2 GB 的文件。视频、虚拟机镜像、大的压缩包基本不在覆盖范围内。要放宽,用环境变量OMV_CLAMAV_CLAMD_MAXFILESIZE和OMV_CLAMAV_CLAMD_MAXSCANSIZE,放得太高会明显增加内存和扫描时间。 - 实时后台扫描默认只扫描 100 MB 以内的文件,由环境变量
OMV_CLAMAV_CLAMD_ONACCESSMAXFILESIZE控制。 - 要排除目录,在 扩展选项 里写
ExcludePath(正则)或OnAccessExcludePath,写法以 clamd.conf 手册为准。
5. 发现病毒时的通知
clamd 发现病毒时,会运行 /etc/clamav/virusevent.d/10mail,给 root 发一封标题为 VIRUS ALERT: <病毒名> 的邮件,内容里有文件路径。要收到它,邮件通知必须能工作。
检查结果
诊断 → 服务 → 防病毒(Diagnostics → Services → Antivirus)里能看到服务状态。- 在 OMV 的 shell(root)里,只读确认:
sh
# 在 OMV 的 shell 里执行(root)
systemctl status clamav-daemon clamav-freshclam
ls -l /var/lib/clamav/ # 应有 main.cvd 或 main.cld 等病毒库文件
tail -n 20 /var/log/clamav/freshclam.log # 病毒库更新记录- 用 EICAR 测试文件验证检测链路。EICAR 是业界通用的、无害的测试字符串,不是真病毒,杀毒软件都会把它当作病毒。在测试用的共享文件夹里,新建一个文本文件,内容是 EICAR 官网公布的那一行字符串(见参考资料),再对这个文件夹建一条计划扫描、选 空操作,手动执行,确认输出里报告了它。不要在选了「立即删除」的计划所覆盖的目录里做测试。
- 在
诊断 → 系统日志(Diagnostics → System Logs)里选防病毒(Antivirus)类型,看扫描和更新记录。
备份与维护
- 病毒库在
/var/lib/clamav/,每天自动更新,不需要备份。隔离区共享文件夹里的文件,定期人工检查和清理。 - 配置文件
/etc/clamav/clamd.conf和freshclam.conf由 Salt 生成,不要手改,要加参数用 扩展选项。 - 截至 2026-10-22,官方有一个未关闭的需求,考虑把 ClamAV 改成容器方式提供,现在仍然是系统服务。
- 卸载插件会清除设置,不会动共享文件夹里的数据。
常见问题
应用时很久没反应。 第一次启用要下载病毒库,最长等几分钟。检查 NAS 能否上网、代理设置是否正确。
扫描很慢,或者机器变卡。 检查有没有对大型媒体库开了实时后台扫描;降低线程数;把计划扫描安排在夜里,并避开备份。
大文件没被扫描。 见上面「它不会扫描什么」。
误报。 对该文件换用 空操作,到 ClamAV 官方渠道确认;不要用 立即删除。
收不到病毒邮件。 通知没配好,见 配置邮件通知。
参考资料
- 插件源码:openmediavault-clamav,官方文档和 wiki 没有这个插件的页面
- ClamAV 官方文档、clamd.conf 手册
- EICAR 测试文件:无害的测试字符串,用来确认杀毒软件在工作