Невозможно установить соединение с FTP-сервером, используя nodejs - PullRequest
1 голос
/ 10 июля 2020

Я сейчас пытаюсь подключиться к FTP-серверу, используя nodeJS lib basic-ftp. Кажется, что соединение было установлено, но я не могу выполнить ни одной операции или даже вывести оператор log после попытки доступа к серверу. Затем код запускается по таймауту. Я могу проверить связь с сервером из своей локальной среды, используя команду Windows CMD ping ..

const ftp = require("basic-ftp")

example()

async function example() {
    const client = new ftp.Client(timeout = 30000)
    client.ftp.verbose = true
    try {
        await client.access({
            host: "10.xxx.xx.xx",
            port: 2222,
            user: "xxx",
            pass: "xxxx",
            secure: true
        })
        console.log("CONNECTED");
        console.log(await client.ensureDir("/PATH/"));
        console.log(await client.list('/PATH/'));
      
    }
    catch (err) {
        console.log(err)
    }
    client.close()
}

Вывод:

Connected to 10.xxx.xx.xxx:2222 (No encryption)
< SSH-2.0-WS_FTP-SSH_8.5.0

Error: Timeout (control socket)
    at Socket.<anonymous> (C:\Users\xxx\dev\nodejs\ftpTest\node_modules\basic-ftp\dist\FtpContext.js:316:58)
    at Object.onceWrapper (events.js:299:28)
    at Socket.emit (events.js:210:5)
    at Socket._onTimeout (net.js:469:8)
    at listOnTimeout (internal/timers.js:531:17)
    at processTimers (internal/timers.js:475:7)

Почти нет вывода, который помог бы мне определить проблему. Я могу установить sh соединение с помощью WinSCP.

Есть ли у кого-нибудь представление о том, что может вызвать проблему и какие шаги необходимы, чтобы определить, что может вызвать эту проблему?

Большое спасибо!

EDIT:

Может быть, отсутствует какой-то обмен ключами? При использовании WinSCP мне пришлось нажать «Да»!

...