Fluent FTP 无法连接到 FTP 服务器

问题描述

我正在尝试使用 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 个问题。

任何帮助将不胜感激。

解决方法

来自official GitHub page

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

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

FileZilla 和 WinSCP 都支持 FTP 和 SFTP,这就是为什么您使用它们没有问题。