我正在运行这个命令,通过FTP和Node.js将文件传输到Ubuntu 22服务器:
const ftp = require("basic-ftp")
const fs = require("fs")
example()
async function example() {
const client = new ftp.Client()
try {
await client.access({
host: "xxx",
user: "root",
password: "",
secure: false
})
console.log(await client.list())
await client.upload(fs.createReadStream("index.html"), "index.html")
}
catch(err) {
console.log(err)
}
client.close()
}
字符串
我得到了这个回报:
Error: connect ECONNREFUSED XXX:21
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: 'XXX',
port: 21
}
型
我不知道为什么。我不认为我在/var/log/auth.log
中看到了什么。可能发生了什么?要检查什么?我可以在服务器上做我想做的事情。
1条答案
按热度按时间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