Skip to content

使用 ClamAV 进行扫描

在这篇文章中

本文目录 - 安装 - 更新病毒库 - 资源需求 - 扫描示例 - 实用技巧 ClamAV 是一款免费、跨平台、开源的防病毒软件,旨在检测特洛伊木马、病毒、恶意软件及其他威胁。它最常用于服务器和邮件网关。

安装

Ubuntu / Debian

sudo apt update && sudo apt install -y clamav clamav-daemon

备注

从 Ubuntu 22.04 和 Debian 11+ 开始,如果计划进行后台扫描或与其他服务集成,建议单独安装 clamav-daemon 包(包含 clamd)。

CentOS / RHEL / Fedora

对于 RHEL/CentOS 7 / 8 / 9(必须启用 EPEL)

sudo yum install -y epel-release
sudo yum install -y clamav clamav-update
对于 Fedora / RHEL 9+(使用 dnf)

sudo dnf install -y clamav clamav-update

备注

在具有 systemd 的系统上(所有现代发行版),clamav-freshclam 服务管理数据库的自动更新。

更新病毒库

首次使用前,**务必**更新病毒特征库。

标准方法(当 freshclam 正在运行时)

sudo freshclam

如果遇到错误 ERROR: Can't open /var/lib/clamav/main.cvd: Permission deniedERROR: Database lock file exists,则 clamav-freshclam 服务可能已在运行并阻止更新。在这种情况下,请使用:

sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam

资源需求

  • 内存 (RAM):对于完整扫描,建议至少保留 1–1.5 GB 空闲内存
  • 交换空间 (Swap):如果不存在交换分区或文件,请设置交换空间,特别是在内存有限的 VPS 上:
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    

扫描示例

任务 命令
扫描单个文件 clamscan /path/to/file
递归文件夹扫描(仅显示感染文件) clamscan -r -i /folder
移动感染文件 clamscan -r --move=/quarantine /folder
自动删除感染文件 clamscan -r --remove /folder
将报告输出到文件 clamscan -r -i /folder > scan_report.txt
使用 clamd 守护进程(重复扫描时速度更快,占用内存更少) clamdscan -r /folder

备注

--remove 选项会**永久删除**文件。仅在测试后并拥有备份的情况下使用。

为了加快重复扫描的速度,建议在启动服务后使用 clamdscan(通过 clamd 守护进程运行):

sudo systemctl start clamav-daemon
sudo clamdscan -r /folder

实用技巧

  • 检查 clamd 是否正在运行:
    sudo systemctl status clamav-daemon
    
  • 扫描日志(默认)位于 /var/log/clamav/
  • 要安排定期扫描,请设置 cron
    # 每天凌晨 3:30 检查
    30 3 * * * /usr/bin/clamscan -r --exclude-dir="^/sys\|^/proc\|^/dev" /home --log=/var/log/clamav/daily_scan.log
    
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×