为了账号安全,请及时绑定邮箱和手机立即绑定

在 Node.js 中使用 TLS/SSL 隐式加密连接到 FTP 服务器

在 Node.js 中使用 TLS/SSL 隐式加密连接到 FTP 服务器

子衿沉夜 2021-11-25 19:21:32
我有 Node.js 应用程序,我正在尝试连接到 FTP 服务器并列出 FTP 服务器文件夹中的文件夹/文件。服务器配置了:TLS/SSL 隐式加密这是我的代码:async function listFilesInFtpFolder() {  const client = new ftp.Client()  client.ftp.verbose = true;  try {      await client.access({          host: ftpConfig.host,          user: ftpConfig.user,          password: ftpConfig.password,          port: ftpConfig.port,          secure: false      });      // ********************** NOTE **********************      // The execution never reaches here, it gets stuck in the       // ... previous statement until it times out      // ********************** NOTE **********************      console.log('connected');      console.log(await client.list())  }  catch(err) {      console.log(err)  }  client.close()}收到此错误:Listening on port 3001Connected to 155.66.22.88:6610Error: Timeout (control socket)    at Socket.<anonymous> (C:\Dev\my-app\node_modules\basic-ftp\dist\FtpContext.js:296:58)    at Object.onceWrapper (events.js:298:28)    at Socket.emit (events.js:209:13)    at Socket._onTimeout (net.js:468:8)    at listOnTimeout (internal/timers.js:531:17)    at processTimers (internal/timers.js:475:7)执行永远不会到达这些行:      console.log('connected');      console.log(await client.list())它一直在等待访问方法,直到它超时出于某种奇怪的原因,访问方法报告“已连接”请注意,如果我使用 WinSCP ( https://winscp.net/ ) 之类的程序连接到此 FTP 服务器,我就可以连接并查看文件夹。但是由于某种奇怪的原因,我无法从 nodejs 连接。我也尝试了很多 FTP 库。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

Node.js 似乎不支持隐式TLS/SSL。

参见例如:https :
//github.com/mscdex/node-ftp/issues/153

您确定您的服务器不支持显式TLS/SSL?


查看完整回答
反对 回复 2021-11-25
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

假设您使用的是ftp来自 npm 的模块

根据文档https://www.npmjs.com/package/ftp#methods 该secure选项接受混合类型,尝试“隐式”

安全 - 混合 - 为控制和数据连接加密设置为真,“控制”仅用于控制连接加密,

或 'implicit' 用于隐式加密控制连接(此模式在现代已弃用,但通常使用端口 990)默认值:false


查看完整回答
反对 回复 2021-11-25
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信