node-tcp-proxy
A simple TCP proxy that may be used to access a service on another network. An extensible replacement for socat when used thus
socat TCP-LISTEN:port1,fork TCP:host:port2
port1
is where socat listens for incoming requests. host
and port2
are the host and port where the actual service is listening at.
To achieve the same with node-tcp-proxy
tcpproxy --proxyPort port1 [--hostname [IP]] --serviceHost host --servicePort port2 [--q] [--tls [both]] [--pfx file] [--passphrase secret]
Optionally, hostname
specifies the IP address to listen at. Node.js listens on unspecified IPv6 address ::
by default.
TLS can be enabled at the proxy port using the tls
option. If followed by both
, TLS is also used with the service. Use pfx
option to specify server certificate, and passphrase
to provide the password required to access it.
npm
Install node-tcp-proxy from npm, thus
sudo npm install -g node-tcp-proxy
Programming Interface
To create a proxy in your own code
var proxy = require("node-tcp-proxy");
var newProxy = proxy.createProxy(8080, "host", 10080);
To end the proxy
newProxy.end();
hostname
can be provided through an optional fourth parameter e.g. {hostname: 0.0.0.0}
to createProxy
. Console output may be silenced by adding quiet: true
e.g. {hostname: 0.0.0.0, quiet: true}
.