无法通过FTP和Node.js连接到Ubuntu 22服务器,该如何检查?

cdmah0mi  于 2023-11-17  发布在  Node.js
关注(0)|答案(1)|浏览(136)

我正在运行这个命令,通过FTP和Node.js将文件传输到Ubuntu 22服务器:

  1. const ftp = require("basic-ftp")
  2. const fs = require("fs")
  3. example()
  4. async function example() {
  5. const client = new ftp.Client()
  6. try {
  7. await client.access({
  8. host: "xxx",
  9. user: "root",
  10. password: "",
  11. secure: false
  12. })
  13. console.log(await client.list())
  14. await client.upload(fs.createReadStream("index.html"), "index.html")
  15. }
  16. catch(err) {
  17. console.log(err)
  18. }
  19. client.close()
  20. }

字符串
我得到了这个回报:

  1. Error: connect ECONNREFUSED XXX:21
  2. at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
  3. errno: -4078,
  4. code: 'ECONNREFUSED',
  5. syscall: 'connect',
  6. address: 'XXX',
  7. port: 21
  8. }


我不知道为什么。我不认为我在/var/log/auth.log中看到了什么。可能发生了什么?要检查什么?我可以在服务器上做我想做的事情。

hmtdttj4

hmtdttj41#

SSH密钥与端口22上的SSH/SFTP一起使用。而不是与端口21上的FTP一起使用。
所以看起来你在node.js中使用了一个错误的协议。在Linux服务器上启用FTP实际上并不常见。SSH/SFTP是默认的,而且更常见。
请参阅How to upload a file with SFTP using an ASC file and username/password in NodeJS

  • 另外,如果你在FileZilla中使用key连接,为什么你在node.js中使用密码?*

相关问题