【问题标题】:Error: Incompatible SOCKS protocol version: 71错误:不兼容的 SOCKS 协议版本:71
【发布时间】:2015-01-11 18:27:56
【问题描述】:

我正在尝试实现使用 socksv5 的 ssh2 节点模块示例。

var socks = require('socksv5'),
Connection = require('ssh2');

var ssh_config = {
host: '192.168.100.1',
port: 22,
username: 'nodejs',
password: 'rules'
};

socks.createServer(function(info, accept, deny) {
var conn = new Connection();
conn.on('ready', function() {
   conn.forwardOut(info.srcAddr,
                   info.srcPort,
                   info.dstAddr,
                   info.dstPort,
                   function(err, stream) {
                      if (err)
                         return deny();

                     var clientSocket;
                     if (clientSocket = accept(true)) {
                        stream.pipe(clientSocket).pipe(stream).on('close', function() {
                        conn.end();
                        });
                     } else
                         conn.end();
                  });
              }).on('error', function(err) {
                   deny();
          }).connect(ssh_config);
       }).listen(1080, 'localhost', function() {
            console.log('SOCKSv5 proxy server started on port 1080');
       }).useAuth(socks.auth.None());

ssh2 连接正常,但在浏览器中调用页面时出现此错误。

我们将不胜感激 亲切的问候托马斯

【问题讨论】:

    标签: node.js ssh module socks


    【解决方案1】:

    您正在尝试将 SOCKS 5 代理用作 HTTP 代理。这些不是相同的协议。

    例如在 Firefox 中,工具 -> 选项 -> 高级 -> 连接设置 -> “SOCKS 主机”是您要填写的内容(本地主机和端口 1080),而不是“HTTP 代理”。

    【讨论】:

    • 啊我不知道。谢谢
    • 你认为这是完成我正在做的事情的最佳方式吗?我正在尝试在主页上的站点中的 ssh 服务器后面呈现主页。所以我有一个主页在树莓派上的网络服务器上运行,另一个主页在 heroku 上托管。我想要做的是通过 ssh 连接到树莓派,并将其主页呈现在 heroku 托管的主页上。再次感谢您的帮助。