我正在尝试通过 FTP 站点代理访问 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
- 仅使用
Authenticator
,没有 FTPProxyConnector
- 在设置连接器之前进行身份验证,反之亦然。
但是,当我只是使用身份验证器时,我收到一个不同的错误:Connection timed out
.
两个错误都发生在线上client.connect("ftpHost");
ANY如有帮助,将不胜感激。
Note: FTP 代理连接器
编辑:我发现代理用于绕过 Firewall-1 检查点 - 如果这有帮助的话。
检查密码属性名称。它的名称是 ftp.proxyPassword,而不是 ftp.proxyPass。
System.setProperty("ftp.proxyUser", "proxyUser");
System.setProperty("ftp.proxyPassword", "proxyPass");
尝试一下,让我们知道您的结果!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)