跳转到内容

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: <病毒名> 的邮件,内容里有文件路径。要收到它,邮件通知必须能工作。

检查结果 ​

  1. 诊断 → 服务 → 防病毒(Diagnostics → Services → Antivirus)里能看到服务状态。
  2. 在 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   # 病毒库更新记录
  1. 用 EICAR 测试文件验证检测链路。EICAR 是业界通用的、无害的测试字符串,不是真病毒,杀毒软件都会把它当作病毒。在测试用的共享文件夹里,新建一个文本文件,内容是 EICAR 官网公布的那一行字符串(见参考资料),再对这个文件夹建一条计划扫描、选 空操作,手动执行,确认输出里报告了它。不要在选了「立即删除」的计划所覆盖的目录里做测试。
  2. 在 诊断 → 系统日志(Diagnostics → System Logs)里选 防病毒(Antivirus)类型,看扫描和更新记录。

备份与维护 ​

  • 病毒库在 /var/lib/clamav/,每天自动更新,不需要备份。隔离区共享文件夹里的文件,定期人工检查和清理。
  • 配置文件 /etc/clamav/clamd.conf 和 freshclam.conf 由 Salt 生成,不要手改,要加参数用 扩展选项。
  • 截至 2026-10-22,官方有一个未关闭的需求,考虑把 ClamAV 改成容器方式提供,现在仍然是系统服务。
  • 卸载插件会清除设置,不会动共享文件夹里的数据。

常见问题 ​

应用时很久没反应。 第一次启用要下载病毒库,最长等几分钟。检查 NAS 能否上网、代理设置是否正确。

扫描很慢,或者机器变卡。 检查有没有对大型媒体库开了实时后台扫描;降低线程数;把计划扫描安排在夜里,并避开备份。

大文件没被扫描。 见上面「它不会扫描什么」。

误报。 对该文件换用 空操作,到 ClamAV 官方渠道确认;不要用 立即删除。

收不到病毒邮件。 通知没配好,见 配置邮件通知。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。