Easy ssh2 tunneling
Last updated 2 years ago by parroit .
MIT · Repository · Bugs · Original npm · Tarball
$ cnpm install open-ssh-tunnel 
SYNC missed versions from official npm registry.


Easy ssh tunneling function based on ssh2 library

Inspired by tunnel-ssh, but with simplified, more modern code.

Travis Build Status NPM module NPM downloads


npm install --save open-ssh-tunnel


  const openSshTunnel = require('open-ssh-tunnel');
  async function openATunnel() {
    const server = await openSshTunnel({
      host: '',
      username: 'you',
      password: 'secret',
      srcPort: 3306,
      srcAddr: '',
      dstPort: 3306,
      dstAddr: '',
      readyTimeout: 1000,
      forwardTimeout: 1000,
      localPort: 3306,
      localAddr: ''

    // you can now connect to your
    // forwarded tcp port!

    // later, when you want to close the tunnel


The module exports openSshTunnel function. It return a promise that resolve to a node net server instance if tunnel is opened, otherwise is rejected with an error.


  • srcIP and srcPort as the originating address and port and dstIP and dstPort as the remote destination address and port. These are options passed to ssh2 Client.forwardOut method.

  • forwardTimeout - How many millisecond to wait before reject with a timeout error.

  • localAddr and localPort are the address and port of the local endpoint of the tunnel on your machine. They are passed to net server connect method.

  • All other options are passed to ssh2 Client.connect method.


  • electron-tunnel - Awesome Electron app to manage your ssh tunnels - powered by this module.


The MIT License (MIT)

Copyright (c) 2015 parro-it

Maintainers (1)
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 5
Dependencies (4)
Dev Dependencies (5)
Dependents (1)

Copyright 2014 - 2016 © |