+------------+ +--------------+
| local app | <=======> | proxy client | <#######
+------------+ +--------------+ #
#
#
# encrypted data(ssl)
#
#
+-------------+ +--------------+ #
| 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.
-
cp config.ini.example config.ini
,openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
- server. Server ip
- server_port. Default 7070
- local. Client ip, default 127.0.0.1
- local_port. Defalut 1080
- certfile. Default cacert.pem
- keyfile. Defalut privkey.pem
-
python server.py
-
use same of server config file
-
python client.py
-
Done
Now, you can set your apps (e.g. Browser) Using socks5 proxy.
IP = 127.0.0.1
PORT = 1080
(if not changed in the config.cfg)
- Use SSL encrypt the data