1

我正在尝试使用 Fluent FTP 连接到 FTP 服务器。当我使用端口 22 (SFTP) 时,我使用 Filezilla 没有问题。

但是我无法使用 Fluent FTP 连接到它。

var client = new FtpClient(Constants.FtpHost, Constants.FtpUsername, Constants.FtpPassword)
        {
            // DataConnectionType = FtpDataConnectionType.PASV,
            // EncryptionMode = FtpEncryptionMode.Implicit,
            // SslProtocols = SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12 | SslProtocols.Tls13,
            Port = 22
        };
        
Console.WriteLine("Connecting...");        
client.Connect();
Console.WriteLine("Connected");

我得到以下错误:无法从传输连接中读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应

当我取消注释DataConnectionType = FtpDataConnectionType.PASV没有任何变化。当我取消注释EncryptionMode = FtpEncryptionMode.Implicit时,我收到以下错误: System.IO.IOException:无法确定帧大小或收到损坏的帧。

我再次遇到 FileZilla 或 WinSCP 的 0 个问题。

任何帮助将不胜感激。

4

1 回答 1

3

官方 GitHub 页面

不支持 SFTP,因为它是基于 SSH 的 FTP,这是一种完全不同的协议(为此使用 SSH.NET)

您正在尝试使用 FTP 库连接到 SFTP 服务器。尽管实现了相同的目标,但它们是两个完全不同的协议,没有任何共同之处。为该服务器使用适当的 SFTP 库。

FileZilla 和 WinSCP 都支持 FTP 和 SFTP,这就是您使用它们没有问题的原因。

于 2021-03-08T13:24:10.657 回答