Socket Pipe
August 25, 2016 ยท View on GitHub
Socket Pipe can forward your socket from one address to anoter without any configs. It supports both tcp and udp, you can simplely make a software net-bridge.
Install
npm install -g socket-pipe
Usage
Tcp socket forwarding
The following example shows how to map a remote address (ip=192.168.1.100 port=80) to a local address (ip=127.0.0.1 port=80) via tcp tunnel.
socket-pipe -l 127.0.0.1@80 -r 192.168.1.100@80 -t tcp
Udp socket forwarding
The following example shows how to map a remote address (ip=8.8.8.8 port=53) to a local address (ip=127.0.0.1 port=53) via udp tunnel.
socket-pipe -l 127.0.0.1@53 -r 8.8.8.8@53 -t udp
Tcp reverse tunnel
The following example shows how to map a server from LAN (ip=192.168.1.100 port=80) to internet (ip=123.123.123.123 port=80).
Client side (LAN)
socket-pipe -l 192.168.1.100@80 -r 123.123.123.123@10080 -t tclient
Server side (internet)
socket-pipe -l 123.123.123.123@10080 -r 123.123.123.123@80 -t tserver
Http reverse tunnel
The following example shows how to map multi http servers from LAN (ip=[192.168.1.100 - 192.168.1.102] port=80) to internet (ip=123.123.123.123 port=80).
Client side (LAN)
http1
socket-pipe -l 192.168.1.100@80 -r 123.123.123.123@10080 -t hclient -x git.dev.com -s git
http2
socket-pipe -l 192.168.1.101@80 -r 123.123.123.123@10080 -t hclient -x file.dev.com
http3
socket-pipe -l 192.168.1.102@80 -r 123.123.123.123@10080 -t hclient -s wiki
Server side (internet)
socket-pipe -l 123.123.123.123@10080 -r 123.123.123.123@80 -t hserver
There are two special params.
-xmeans socket-pipe will transform:- The
Hostvalue in http request header. - The host part of 'Location' value in http response header.
- The
-smeans specify a domain prefix. The server side will create a random prefix without specifying.
Now you can visit different backend http server in a LAN from a portal on internet.
For example if domain *.test.com is pointing to 123.123.123.123, the visits to http://git.test.com/ will be forwarded to http://192.168.1.100/ with host git.dev.com because of the domain prefix git.