Avast Antivirus / MailShield 更新后 Java 套接字连接被拒绝

Posted

技术标签:

【中文标题】Avast Antivirus / MailShield 更新后 Java 套接字连接被拒绝【英文标题】:Java socket connection refused after Avast Antivirus / MailShield update 【发布时间】:2019-04-01 07:03:27 【问题描述】:

自上次更新 Avast Antivirus 以来,我无法再使用 java.net.Socket 连接到 POP3 电子邮件服务器。 Mozilla Thunderbird 工作正常,我也可以使用 PuTTY(原始,端口 110)连接。

连接到 110 以外的其他端口可以正常工作。运行以下代码时:

try

    System.out.println("Connecting to www.google.com:80");
    java.net.Socket socket1 = new Socket("www.google.com", 80);
    System.out.println("Connected");
    socket1.close();

    System.out.println("Connecting to pop01.binero.se:110");
    java.net.Socket socket2 = new Socket("pop01.binero.se", 110);
    System.out.println("Connected");
    socket2.close();

catch(Exception ex)

    ex.printStackTrace();

它输出:

Connecting to www.google.com:80
Connected
Connecting to pop01.binero.se:110
java.net.ConnectException: Connection refused: connect
        at java.base/java.net.PlainSocketImpl.connect0(Native Method)
        at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101)
        at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
        at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
        at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
        at java.base/java.net.Socket.connect(Socket.java:591)
        at java.base/java.net.Socket.connect(Socket.java:540)
        at java.base/java.net.Socket.<init>(Socket.java:436)
        at java.base/java.net.Socket.<init>(Socket.java:213)
        at SocketTest.main(SocketTest.java:15)

如果我为收到的邮件禁用 Avast MailShield,我可以使用上面的代码进行连接。据我所知,MailShield 会拦截来自电子邮件客户端的 TCP 连接并扫描任何电子邮件附件。如果发现病毒,它会在电子邮件主题中添加警告文本。

我不明白的是它如何拦截 TCP 连接,如何区分我的程序、Thunderbird 或 PuTTY,以及为什么它只阻止我的程序。

我想为 Thunderbird 保持激活 MailShield,并为我自己的程序禁用它,或者让 Avast 将我的程序识别为有效的电子邮件客户端并让它通过。

【问题讨论】:

【参考方案1】:

通常窗口更新会更新 JDK 路径。 你需要重新配置JDK路径 How to set java_home on Windows 7?

【讨论】:

如果 JDK 路径错误,程序根本无法启动,对吧?我以前遇到过这个问题,当 Windows 说它找不到 javaw.exe 程序时。现在程序启动正常,但无法连接到邮件服务器。

以上是关于Avast Antivirus / MailShield 更新后 Java 套接字连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

A list of known Antivirus for Mac software

A list of known Antivirus for Mac software

Avast 阻止 pip 和 Pyinstaller

关于avast 17.1版本

我的安卓应用被 Avast 检测为恶意软件

Avast 将 SciPy 检测为病毒?