【问题标题】:Using sftp with socks5 proxy node.js将 sftp 与 socks5 代理 node.js 一起使用
【发布时间】:2019-11-26 18:14:00
【问题描述】:

我一直在研究使用 ssh2 模块来 sftp 传送日志。然而,托管我们应用程序的云服务使用轮换 IP 地址范围。所以想要集成给我们静态IP地址的socks5代理服务。我正在使用 socksjs 模块来建立 socks5 连接,我正在建立与代理的连接,但我认为我有注入该套接字连接以供 sftp 使用错误。

干杯,

尼克

var sockConn = new SocksConnection(connTargetSettings, connProxySettings);
connTargetSettings.sock = sockConn.outSocket;

var conn = new ssh2.Client();
conn.on("ready", function() {
    conn.sftp(function(err, sftp) {
        if (err) throw err;
        // you'll be able to use sftp here
        sftp.readdir("/", function(err, list) {
            if (err) throw err;
            // List the directory in the console
            console.dir(list);
            // Do not forget to close the connection, otherwise you'll get troubles
            conn.end();
        });
        // Use sftp to execute tasks like .unlink or chmod etc
    });
}).connect(connTargetSettings);

【问题讨论】:

    标签: node.js ssh proxy sftp


    【解决方案1】:

    您可以使用socksv5库(来自ssh2的创建者)连接throw socks5代理。

    例子:

    var socks = require('socksv5'),
        SSHClient = require('ssh2').Client;
    
    socks.connect({
      host: 'ssh.example.org', // destination
      port: 22,
      proxyHost: '127.0.0.1',
      proxyPort: 1080,
      auths: [ socks.auth.None() ]
    }, function(socket) {
      var conn = new SSHClient();
      conn.on('ready', function() {
        conn.exec('uptime', function(err, stream) {
          if (err) throw err;
          stream.on('close', function(code, signal) {
          conn.end();
          }).on('data', function(data) {
            console.log('STDOUT: ' + data);
          }).stderr.on('data', function(data) {
            console.log('STDERR: ' + data);
          });
        });
      }).connect({
        sock: socket,
        username: 'frylock',
        privateKey: require('fs').readFileSync('/here/is/my/key')
      });
    });
    

    【讨论】:

    • 我必须使用 npm install lee-elenbaas/socksv5 --save 来使用来自 @lee-elenbaas 的分支,该分支适用于新版本的节点
    猜你喜欢
    • 1970-01-01
    • 2013-05-27
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2021-08-21
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多