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 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 client
is running at your local computer.It receive your app (like a browser) request, encrypt the data, send to
proxy server
-
proxy server
receive the request fromproxy client
, decrypt it, and sent to the target host. -
proxy server
got the response from target host, then encrypt response, send back toproxy client
. -
proxy client
decrypt response received fromproxy server
, and send to local app. -
the circle done.
-
git clone https://github.com/yueyoum/make-proxy.git
or 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
-
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-proxy
server runs - remote_port. PORT that make-proxy server using. SAME as the defination of
server.config
. - local_port. which port the make-proxy client will listen on.
- 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
- Support HTTP Proxy
- Traffic Statistics