尝试通过FTPS上传文件时重置连接

时间:2019-05-25 19:40:18

标签: python node.js econnreset pyftpdlib node-ftp

我正在使用带有pyftpdlib的FTP服务器设置,并且在FTP+SSL上以127.0.0.1:2121模式运行。我正在使用自签名密钥和证书文件。服务器的配置如下:

main.py

authorizer = DummyAuthorizer()
authorizer.add_user('XXXX', 'XXXX', './test_home', perm="elradfmwMT")

handler = TLS_FTPHandler
handler.certfile = 'cert.pem'
handler.keyfile = 'key.pem'
handler.authorizer = authorizer

server = FTPServer(('127.0.0.1', '2121',), handler)

if __name__ == '__main__':
    server.serve_forever()

我正在使用nodejs软件包的node-ftp客户端设置连接到服务器。设置客户端的方法如下:

ftpc.js

const Ftpc = require('ftp');
const fs = require('fs');

const client = new Ftpc();

client.connect({
    host: '127.0.0.1',
    port: 2121,
    user: 'XXXX',
    password: 'XXXX',
    secure: true,
    secureOptions: {
        rejectUnauthorized: false
    }
});

从服务器日志(在stdout上),我得到以下信息:

[I 2019-05-26 00:04:52] 127.0.0.1:37350-[] FTP session opened (connect)
[I 2019-05-26 00:04:52] 127.0.0.1:37350-[XXXX] USER 'XXXX' logged in.
[I 2019-05-26 00:04:52] 127.0.0.1:37350-[XXXX] FTP session closed (disconnect).

从stoud上的客户端错误输出中,我得到:

Server send pyftpdlib 1.5.5 ready.
[!] File upload error
{ Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }
[!] Closing client connection

当我尝试使用client.put上传文件时发生错误。我尝试上传的文件具有以下权限:

-rw-r--r--  1 <CURRENT_USER> users  893150 May 19 11:42 YYY.ZZZ

基于显示的以下设置,我不确定错误的性质。如果服务器断开连接,是否是由于handler.keyfilehandler.certfile设置问题?原因是因为没有客户端和服务器的安全选项,文件上载才能正常进行。

任何对错误原因或更好地调试问题的建议将不胜感激。谢谢

0 个答案:

没有答案