我正在尝试通过 FTP SITE 代理访问 FTP 服务器以绕过防火墙,it.sauronsoftware.ftp4j.FTPClient因为我知道我的用户名/密码是正确的,因为我可以使用 FileZilla 进行连接。我尝试使用Authenticator,但它没有用。代码:
import java.net.Authenticator;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.connectors.FTPProxyConnector;
...
    FTPClient client = new FTPClient();
        FTPProxyConnector connector = new FTPProxyConnector(String "proxyHost", int proxyPort);
        client.setConnector(connector);
        Authenticator.setDefault(new Authenticator() {
        @Override
             public PasswordAuthentication getPasswordAuthentication() {
                       return new PasswordAuthentication("proxyUser", "proxyPass".toCharArray());
         }});
        System.setProperty("ftp.proxyHost", "proxyHost");
        System.setProperty("ftp.proxyPort", "proxyPort");
        System.setProperty("ftp.proxyUser", "proxyUser");
        System.setProperty("ftp.proxyPass", "proxyPass");
        System.out.println("Proxy Accessed");
        client.connect("ftpHost");
        client.login("ftpUser", "ftpPass");
给我这个错误:java.io.IOException: Proxy authentication failed
我尝试过的事情:
- 使用备用构造函数(String, int, String, String)。
- 移除Authenticator
- 使用 just Authenticator,不使用 FTPProxyConnector
- 在设置连接器之前进行身份验证,反之亦然。
但是,当我只是使用 Authenticator 时,我得到一个不同的错误说Connection timed out。
两个错误都在线发生client.connect("ftpHost");
任何帮助将不胜感激。
注意:FTP 代理连接器
编辑:我发现代理用于绕过 Firewall-1 检查点——如果这有帮助的话。