Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-reverse-wstunnel

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-reverse-wstunnel

Tools to establish a TCP socket tunnel over websocket connection, and to enstabilish a reverse tunnel over websocket connection, for circumventing the problems of direct connections to the host behind a strict firewalls or without a public IP.

  • 1.0.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Tunnel and Reverse Tunnel Client and Server implementation over WS/WSS protocol for Node.js

npm version

NPM

NPM

Overview

Tools to establish a TCP socket tunnel over websocket connection, and to enstabilish a reverse tunnel over websocket connection, for circumventing the problems of direct connections to the host behind a strict firewalls or without a public IP.

Installation

npm install node-reverse-wstunnel

Usage for a Node.js application

Instantiation of a tunnel server

const wst = require("../lib/wst_wrapper").server;

//Instance of a new WebSocker Tunnel Server Object specifying the TCP port on which it will be listening
let server = new wst(8888);
//Start the server
server.start(port);

Implementation of a tunnel client

const wst = require("../lib/wst_wrapper").client;

let client = new wst();

/*
<publicPortOnServer> is the port on the public reverse tunnel server on which the service will be reachable
<WSHost> is the remote host on which the reverse tunnel server is started  expressed in the following form 'ws://<hostname>:<port>'
<remoteHost>:<remotePort> is the end point of the service for the defined tunnel
*/
client.start('<publicPortOnServer>', '<WSHost>', '<remoteHost>:<remotePort>');

Instantiation of a reverse tunnel server

const wst = require("../lib/wst_wrapper").server_reverse;

//Instance of a new WebSocker Reverse Tunnerl Server Object specifying the TCP port on which it will be listening
let server = new wst(8888);
//Start the server
server.start(port);

Implementation of a reverse tunnel client

const wst = require("../lib/wst_wrapper").client_reverse;

let client = new wst();

/*
<publicPortOnServer> is the port on the public reverse tunnel server on which the service will be reachable
<WSHost> is the remote host on which the reverse tunnel server is started  expressed in the following form 'ws://<hostname>:<port>'
<remoteHost>:<remotePort> is the end point of the service for the defined tunnel
*/
client.start('<publicPortOnServer>', '<WSHost>', '<remoteHost>:<remotePort>');

Usage of wst.js executable

Using the wst.js executable located in bin directory:

For running a websocket tunnel server:

./wstt.js -s 8080

For running a websocket tunnel client:

./wstt.js -tunnel 33:2.2.2.2:33 ws://host:8080

In the above example, client picks the final tunnel destination, similar to ssh tunnel. Alternatively for security reason, you can lock tunnel destination on the server end, example:

Server:

    ./wstt.js -s 8080 -t 2.2.2.2:33

Client:

    ./wstt.js -t 33 ws://server:8080

In both examples, connection to localhost:33 on client will be tunneled to 2.2.2.2:33 on server via websocket connection in between.

For running a websocket reverse tunnel server:

./wstt.js -r -s 8080

For running a websocket reverse tunnel client:

./wstt.js -r 6666:2.2.2.2:33 ws://server:8080

In the above example the client tells the server to open a TCP server on port 6666 and all connection on this port are tunneled to the client that is directely connected to 2.2.2.2:33

Keywords

FAQs

Package last updated on 05 Nov 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc