我正在尝试让 Clamav-daemon 在 Debian 8 系统上运行,以便它监听 TCP 端口 3310。我已完成以下操作:
aptitude install clamav-daemon
然后进行修改/etc/clamav/clamd.conf
,使其顶部现在包含以下内容:
# Added by me
TCPSocket 3310
TCPAddr localhost
# Already existed
LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
LocalSocketGroup clamav
LocalSocketMode 666
使用 重新启动服务service clamav-daemon restart
。
我发现它netstat -tap | grep clam
没有返回任何内容。运行ps aux | grep clam
返回:
clamav 18559 11.4 10.3 649212 399604 ? Ssl 14:38 0:15 /usr/sbin/clamd --foreground=true
有一个自动生成的文件/etc/systemd/system/clamav-daemon.socket.d/extend.conf
包含:
[Socket]
ListenStream=
SocketUser=clamav
ListenStream=/var/run/clamav/clamd.ctl
SocketGroup=clamav
SocketMode=666
我在日志中唯一能看到的是:
TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd
有谁知道为什么我在运行 ClamAV 时会遇到麻烦TCP:3310
?
答案1
我尝试了上述所有其他建议,但都无法使其发挥作用。
但是,dpkg-reconfigure clamav-daemon
在配置选项中尽早运行并选择 TCP(而不是 UNIX)并且其他所有内容的默认设置对我在 Ubuntu 16.04 上都有效。
答案2
只是跑步
dpkg-reconfigure clamav-daemon
选择 TCP 套接字和所需端口以及接口 ip(可以是任意)即可使其正常工作。您可以接受所有其他值的默认值或指定它们。
答案3
我现在让它运行了,但是它的配置远不如在 Debian 7 上那么好。
我只能运行 TCP 或 unixsocket(不确定为什么),但不能同时运行两者。因此我使用:
/etc/systemd/system/clamav-daemon.socket.d/extend.conf
[Socket]
ListenStream=
SocketUser=clamav
ListenStream=3310
/etc/clamav/clamd.conf 仅包含:
TCPSocket 3310
并且其中没有 unix 套接字信息。因此删除了以下内容:
LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
LocalSocketGroup clamav
LocalSocketMode 666
然后为了让 Exim4 使用它我必须:
av_scanner = clamd:127.0.0.1:local
我不能localhost
在那里使用。必须是127.0.0.1
。
答案4
我在这里没有足够的代表来评论(因为我的解决方案是在不同的发行版上),但在安装 ubuntu 16.04 时,这对我有用:
直接修改 clamav-daemon.socket:
[Socket]
ListenStream=/run/clamav/clamd.ctl
ListenStream=xx.xx.xx.xx:3310
SocketUser=clamav
SocketGroup=clamav
RemoveOnStop=True
将它添加到 extend.conf 对我来说不起作用,但是当我将 extend.conf 中的所有内容注释掉并重新加载和重新启动时,它就会监听两者。
在此更改之前,我看到了与@Doahh 相同的问题