You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS无法识别ClamAV?nodeClam实例化配置问题求助

NodeClam配置错误排查:ClamAV扫描工具无法激活

问题描述

我想用ClamAV实现文件上传流程的病毒扫描,当前用以下代码实例化nodeClam:

const nodeClam = require('clamscan');
...
const clamScan = new nodeClam().init({  
    debug_mode: true,
    preference: 'clamscan',
    clamdscan: {                
        path: '/usr/bin/clamscan',
        local_fallback: true,
        config_file: '/etc/clamav/clamd.conf',
        scan_archives: true,
        active: true,
        port: 3310
    },
});

运行时出现错误:

/app/node_modules/clamscan/index.js:241
                            const err = new NodeClamError(
                                        ^

NodeClamError: No valid & active virus scanning binaries are active and available and no host/socket option provided!
    at /app/node_modules/clamscan/index.js:241:41 {
  data: {},
  date: 2023-04-14T18:35:34.764Z
}

但本地执行clamscan命令完全正常:

$ clamscan /tmp/eicarcom2.zip
/tmp/eicarcom2.zip: Win.Test.EICAR_HDB-1 FOUND

----------- SCAN SUMMARY -----------
Known viruses: 8661879
Engine version: 0.103.8
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 14.861 sec (0 m 14 s)
Start Date: 2023:04:14 15:08:37
End Date:   2023:04:14 15:08:52

请问我的nodeClam实例化配置是否存在遗漏?


问题根源

你把独立扫描工具clamscan的配置错误放到了clamdscan节点下,这是核心问题:

  • clamdscan配置项是给ClamAV守护进程(clamd)用的,对应通过网络/套接字调用扫描的场景
  • 你实际要用的是本地二进制文件clamscan,需要单独配置clamscan对象

修正后的配置

const nodeClam = require('clamscan');
...
const clamScan = new nodeClam().init({  
    debug_mode: true,
    preference: 'clamscan', // 指定优先使用clamscan
    clamdscan: {
        active: false // 不用clamd守护进程就直接禁用
    },
    clamscan: { // 单独配置clamscan参数
        path: '/usr/bin/clamscan',
        config_file: '/etc/clamav/clamd.conf',
        scan_archives: true,
        active: true // 激活clamscan
    }
});

额外检查点

  • 确认Node.js进程对/usr/bin/clamscan有执行权限,可通过chmod +x /usr/bin/clamscan或调整进程用户组解决
  • 开启debug_mode: true后,查看详细日志,确认nodeClam是否能正确找到并调用clamscan二进制文件
  • 若仍有问题,可尝试简化配置,只保留path和active两个必要参数,逐步排查其他配置项的影响

内容的提问来源于stack exchange,提问作者goterpsgo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:43:32