{"id":49736,"library":"websocket-ssh-bridge","title":"websocket-tcp-bridge","description":"Bridges TCP connections through a WebSocket server, commonly used to tunnel SSH over WebSocket. The package provides three command-line tools: server.js (exposes a local TCP port via WebSocket), client.js (connects a local TCP client to a remote WebSocket endpoint), and pipe.js (maps stdio to a WebSocket for use as an SSH ProxyCommand). It enables SSH through firewalls that only allow HTTP/HTTPS traffic. Current stable version is 1.0.3, released in 2016 with no active development. Key differentiators: lightweight, no dependencies besides Node.js built-ins and ws WebSocket library, simple deployment via screen/cron, and support for Apache reverse proxy.","status":"abandoned","version":"1.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/simonwalz/websocket-tcp-bridge","tags":["javascript"],"install":[{"cmd":"npm install websocket-ssh-bridge","lang":"bash","label":"npm"},{"cmd":"yarn add websocket-ssh-bridge","lang":"bash","label":"yarn"},{"cmd":"pnpm add websocket-ssh-bridge","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"WebSocket client/server implementation used in all scripts","package":"ws","optional":false}],"imports":[{"note":"CLI script; does not export a module.","wrong":"node server.js","symbol":"server.js","correct":"node server.js 8022 127.0.0.1 22"},{"note":"CLI script; arguments order: localport websocketpath.","wrong":"node client.js ws://remotehost/ 8022","symbol":"client.js","correct":"node client.js 8022 ws://remotehost/"},{"note":"CLI script; requires WebSocket path as argument.","wrong":"node pipe.js","symbol":"pipe.js","correct":"node pipe.js ws://remotehost/"}],"quickstart":{"code":"npm install -g websocket-tcp-bridge\n# Start server (maps local port 8022 to localhost:22)\nserver.js 8022 &>> /tmp/ws-server.log &\n# Then from another machine, connect using client.js\nclient.js 2222 ws://example.com/ &\nssh -p 2222 user@localhost","lang":"javascript","description":"Installs globally, starts a WebSocket server bridging port 8022 to SSH, then connects a client from another machine."},"warnings":[{"fix":"Consider alternative packages like 'websocat' or 'wstunnel' that are actively maintained.","message":"The package is abandoned; no updates since 2016. It uses the deprecated 'ws' v1.x API and Node.js pre-ESM patterns.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use Node.js 18 or lower, or run with `--experimental-require-module` flag.","message":"The command-line scripts are CommonJS modules using `require('ws')` but do not properly handle newer Node.js features. They will fail on Node.js >=22 if not run with `--experimental-require-module`.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Do not use in production; or manually update 'ws' to >=3.3.0 but may break the bridge logic.","message":"The 'ws' library version used (^1.0.0) has known security vulnerabilities (CVE-2016-1000238, DoS).","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Replace with `Buffer.from()` in source code, but since package is abandoned, better to switch to an alternative.","message":"The scripts use deprecated `new Buffer()` which is unsafe and removed in Node.js >=10.0.0.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.3':73 '2016':76 'activ':79 'allow':66 'apach':102 'besid':86 'bridg':4,5 'built':89 'built-in':88 'client':40 'client.js':35 'command':24 'command-lin':23 'common':12 'connect':7,36 'current':69 'depend':85 'deploy':96 'develop':80 'differenti':82 'enabl':60 'endpoint':45 'expos':28 'firewal':63 'http/https':67 'in':90 'javascript':105 'key':81 'librari':94 'lightweight':83 'line':25 'local':30,38 'map':48 'node.js':87 'packag':20 'pipe.js':47 'port':32 'provid':21 'proxi':104 'proxycommand':58 'releas':74 'remot':43 'revers':103 'screen/cron':98 'server':11 'server.js':27 'simpl':95 'ssh':16,57,61 'stabl':70 'stdio':49 'support':100 'tcp':3,6,31,39 'three':22 'tool':26 'traffic':68 'tunnel':15 'use':13,54 'version':71 'via':33,97 'websocket':2,10,18,34,44,52,93 'websocket-tcp-bridg':1 'ws':92","created_at":"2026-06-07T17:03:20.731921+00:00","updated_at":"2026-06-07T17:03:20.731921+00:00","problems":[{"fix":"Run `npm install ws` explicitly or reinstall the package with `npm install websocket-tcp-bridge`.","cause":"The package depends on 'ws' but it may not be installed if npm install --no-optional or in a broken node_modules.","error":"Error: Cannot find module 'ws'"},{"fix":"Use Node.js >=14.","cause":"The package uses a Node.js version that does not support nullish coalescing (??), e.g., Node.js 12 or lower.","error":"SyntaxError: Unexpected token '??'","affected_versions":">=1.0.0"},{"fix":"Make sure to run with Node.js, not in a browser environment.","cause":"The scripts assume a global Buffer which is not available in some bundlers or custom environments.","error":"ReferenceError: Buffer is not defined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/simonwalz/websocket-tcp-bridge#readme","github":"https://github.com/simonwalz/websocket-tcp-bridge","docs":null,"changelog":null,"pypi":null,"npm":"websocket-ssh-bridge","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}