SocksTunnel

Establish secure tunnel via Socks 5 base on EventMachine. Recently support TCP only.

Installation

$ gem install socks_tunnel

Usage

Start local server

socks_tunnel local --password=PASSWORD --port=PORT --remote-addr=REMOTE_ADDR

Options

--portThe port number to listen.Required
--passwordThe password for generating encryption key and iv.Required
--remote-addrThe address of remote server. (host:port)Required
--hostWhen running local server on a different machine, use this to set the IP.Optional
--saltThe salt for generating encryption key and iv.Optional
--daemonRun in the background.Optional

Start remote server

socks_tunnel remote --password=PASSWORD --port=PORT

Options

--portThe port number to listen.Required
--passwordThe password for generating encryption key and iv.Required
--saltThe salt for generating encryption key and iv.Optional
--daemonRun in the background.Optional

Password and Salt used in both local and remote server should be the same.

Example

Test on local machine

# Start local server
socks_tunnel local --password=mypassword --port=8081 --remote-addr=127.0.0.1:8082
# Start remote server
socks_tunnel remote --password=mypassword --port=8082

# Use curl to test
curl --socks5 localhost:8081 https://github.com/

Run Remote server on a real server

# Start local server
socks_tunnel local --password=mypassword --port=8081 --remote-addr=[SERVER_IP]:8082
# Start remote server
socks_tunnel remote --password=mypassword --port=8082

# Use curl to test
curl --socks5 localhost:8081 https://github.com/