我在 Azure 上拥有两个位于同一子网的虚拟机。一个虚拟机 (10.1.0.6) 运行着 clamav 守护进程,另一个运行着 Java Wildfly 应用程序 (10.1.0.5)。
我想将文件从 Java 应用程序发送到 clam av 守护进程。
我检查了 Clamav 是否正在运行并监听端口 3310:
netstat -ant|grep 3310
tcp 0 0 127.0.0.1:3310 0.0.0.0:* LISTEN
netstat -lnp | grep clam
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
unix 2 [ ACC ] STREAM LISTENING 800631 -
/var/run/clamav/clamd.ctl
对于 Clam Av 服务器,虚拟专用网络中的所有入站端口均已打开。但是,如果我在 Java 服务器上通过 telnet 或 nc 检查端口是否可用,我会得到:
telnet 10.1.0.6 3310
Trying 10.1.0.6...
telnet: Unable to connect to remote host: Connection refused
nc -vz 10.1.0.6 3310
nc: connect to 10.1.0.6 port 3310 (tcp) failed: Connection refused
如果我通过 Java 应用程序发送文件,我会收到同样的错误。
我的 clamav 设置是否正确?这个问题是否与我的子网配置有关?
感谢您的帮助!
答案1
问题在于守护进程正在监听环回 IP 地址 (127.0.0.1)。我不得不将其切换为监听 10.1.0.6(0.0.0.0 也应该可以)。
添加于/etc/clamav/clamd.conf
:
TCPSocket 3310
TCPAddr 10.1.0.6
添加/etc/systemd/system/clamav-daemon.service.d/extend.conf
ListenStream=10.1.0.6:3310
重新启动守护进程并且现在可以正常工作了!