This project can take you through a Firewall via Socks5 proxy.
with the great erlang, the project has the following features:
-
Robustness. never down.
-
Scalable. handle thousands requests at the same time easily.
-
Fast.
-
Lightweight. only needs at most 30MB memories.
In my daily use,
-
When server is idle, It only takes about 10MB memories.
-
Play a youtube 1080P video, and load some other websites at the same time, It only takes 20MB ~ 30MB memories.
Below is the system status when play a youtube 1080P video. Notice the
beam.smpprocess below ofmysqld.Linode 4 cpus, 512 RAM VPS.
+-----------+ +--------------+ encrypt
| local app | <=======> | proxy client | <#######
+-----------+ decrypt +--------------+ #
#
#
# encrypted data
#
#
+-------------+ +--------------+ #
| target host | <=======> | proxy server | <#####
+-------------+ decrypt +--------------+ encrypt
-
proxy clientis running at your local computer.It receive your app (like browser) request, encrypt the data, send to
proxy server -
proxy serverreceive the request fromproxy client, decrypt it, and sent to the target host. -
proxy servergot the response from target host, and encrypt response, send back toproxy client. -
proxy clientdecrypt response received fromproxy server, and send to local app. -
the circle done.
-
git clone https://github.com/yueyoum/make-proxy.gitor directly download. -
cp src/config.hrl.example src/config.hrlYou need to define the
REMOTEIPandREMOTEPORT.REMOTEPORTis which port proxy_server will listen on. -
./start_server.shor./start_server.sh -dwill run the server in backend.
-
same as the Server side, checkout the code, and do the difinition AS SAME AS the server side
-
./start_client.sh
Now, you can set your apps (e.g. Browser) Using socks5 proxy.
IP = 127.0.0.1
PORT = 7070 (if not changed in the src/config.hrl)
- change the encrypt/decrypt method, now is just every byte do
bxorwith2#01111001
