gnutls_record_recv 中的 GnuTLS 错误 -110:TLS 连接未正确终止

gnutls_record_recv 中的 GnuTLS 错误 -110:TLS 连接未正确终止

我正在尝试使用 FileZilla 3.9.0.5 从服务器下载一些文件,使用常规 FTP 通过显式 TLS。许多文件下载正常。但是,它拒绝下载某些文件,并向我显示以下消息:

Status: Starting download of /public_html/foo/bar/baz.php
Command:    PASV
Response:   227 Entering Passive Mode (***my server IP***)
Command:    RETR baz.php
Response:   150-Accepted data connection
Response:   150 13.0 kbytes to download
Error:  GnuTLS error -110 in gnutls_record_recv: The TLS connection was non-properly terminated.
Status: Server did not properly shut down TLS connection
Error:  Could not read from transfer socket: ECONNABORTED - Connection aborted
Response:   226-File successfully transferred
Response:   226 0.000 seconds (measured here), 26.04 Mbytes per second
Error:  File transfer failed after transferring 13,653 bytes in 1 second

有问题的服务器是一个 CentOS/cPanel 盒。

有人能告诉我如何解决这个问题吗?

编辑:一些额外的见解:FileZilla 崩溃的文件有一些硬制表符(字符 9)。我在服务器上将这些文件的副本中的所有硬制表符替换为 4 个空格,然后就可以正常下载它们了。也许是制表符的某些方面导致了问题?

编辑2:服务器日志有很多这样的条目:

Sat Sep 13 18:24:26 2014 0 ****** 13682 /home/******/public_html/foo/bar/baz.php a _ o r ****** ftp 1 * c

上面的s******代表该账户的 IP、用户名和用户名。除了时间戳和传输的字节数外,传输失败的条目与传输成功的条目完全相同。

答案1

这是 Filezilla 问题,我不确定如何修复它,但一个快速的解决方案是使用不同的 FTP 客户端。

我用了核心 FTP并且运行良好。

答案2

状态:服务器未正确关闭 TLS 连接

这是服务器导致的问题,因此您需要查看服务器日志。本质上,它表示服务器只是关闭了 TCP 连接,而没有先正确关闭 TCP 连接之上的 TLS 层。如果这是一些知名的服务器软件,希望不会发生这种情况,您可能会在服务器端找到一些相关的日志条目。但是,如果这只是一些自制或很少使用的服务器软件,则可能是服务器软件本身的问题,因为无法正确关闭 TLS 连接是一个经常犯的错误。

相关内容