This project can take you through a Firewall via Socks5 proxy.
with the great erlang, the project has the following features:
-
socks5 / http proxy. (https not supported)
-
Robustness. never down.
-
Scalable. handle thousands requests at the same time easily.
-
Fast.
-
Lightweight. only takes less than 20MB memories.
In my daily use, (1 cpu, 512MB RAM VPS)
+------------+ +--------------+
| local app | <=======> | proxy client | <#######
+------------+ +--------------+ #
#
#
# encrypted data
#
#
+-------------+ +--------------+ #
| target host | <=======> | proxy server | <#####
+-------------+ +--------------+
-
proxy clientis running at your local computer.It receive your app (like a 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, then 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. -
cd make-proxy -
cp server.config.example server.config,- port. which port that the server listen on
- key. key to encrypt/decrypt data 16bytes
-
make server -
./start_server.sh -
Done.
-
same as the Server side, checkout the code.
-
cd make-proxy -
cp client.config.example client.config- remote_addr. IP of the compute where
make-proxyserver runs - remote_port. PORT that make-proxy server using. SAME as the defination of
server.config. - local_socks5_port. this port is used for socks5 proxy.
- local_http_port. this port is used for http proxy.
- key. key to encrypt/decrypt data. this MUST AS SAME AS the defination of
server.config.
- remote_addr. IP of the compute where
-
make client -
./start_client.sh -
Done
Now, you can set your apps (e.g. Browser) Using socks5 proxy.
IP = 127.0.0.1
PORT = 7070 (if not changed in the client.config)
- Support Socks5 Username/Password Authorize
- Traffic Statistics
