如何用 Java 连接到 FTP over TLS/SSL (FTPS) 服务器

问题描述 投票:0回答:1

我无法通过 TLS/SSL (FTPS) 服务器连接到 FTP。我正在使用 SimpleFTP 库,可以在没有 SSL 的情况下连接 FTP 服务器,但无法连接 FTPS。

它在第 2 行(ftp.connect)给了我这个错误,

SimpleFTP 在连接到 FTP 服务器时收到未知响应:
220---------- 欢迎来到 Pure-FTPd [privsep] [TLS] ----------

并且正在使用下面的代码

SimpleFTP ftp = new SimpleFTP();

// Connect to an FTP server on port 21.
ftp.connect("xxx.xxx.xxx.xxx", 21, "username", "pwd");
//getting error at (ftp.connect) above line

// Set binary mode.
ftp.bin();

// Change to a new working directory on the FTP server.
ftp.cwd("web");
ftp.disconnect();
java ssl ftp ftps
1个回答
39
投票

SimpleFTP
类/库根本不支持TLS/SSL。


请使用 Apache Commons Net 库

中的 
FTPSClient

请参阅 FTPClient

官方示例,只需将
FTPClient
替换为
FTPSClient

FTPSClient ftpClient = new FTPSClient();
ftpClient.connect(host);
ftpClient.login(user, password);

FTPSClient
类默认为显式 TLS/SSL(推荐)。在极少数情况下,您需要隐式 TLS/SSL,请使用
new FTPSClient(true)

© www.soinside.com 2019 - 2024. All rights reserved.