mproxy is a lightweight http proxy server implementation. It is created by @examplecode, and now maintained by @ArchLinuxStudio.
- Only supports linux system.
- Support http proxy.
- Support http tunnel proxy.
- Simple obfuscation http tunnel proxy through XOR.
- Support chained connection.
mproxy can work in a normal HTTP proxy mode, only forward the request, which cannot be used for censorship circumvention.
./mproxy -l 8000 -d
Note: The "-d" parameter indicates that the program serves as a deamon service to prevent the terminal from exiting the program.
This way of working is of little significance to us, it is only a function display, and the focus is on the following.
This working mode needs to be used in conjunction with the mproxy-client and mproxy-server, that is, mproxy acts as the client and server respectively, and forms a simple encrypted tunnel between the client and the server, thereby avoiding the detection of GFW. The specific working mode is shown in the figure below:
+----------+ +-----------+ +----------+ +----------+ | | | | | | | | | | | | | | | | | APP +------->| mproxy |+------> mproxy +------> Web | | | | | | | | | | | | client | | server | | | +----------+ +-----------+ +----------+ +----------+
The deployment steps are as follows:
./mproxy -l 8081 -D -d
-D Specify to accept data for decryption, and its corresponding parameter '-E' is applied to the local agent.
Start a mporxy locally and specify the server address and port number deployed remotely in the previous step.
./mproxy -l 8080 -h xxx.xxx.xxx.xxx:8081 -E
-l Specify the local listening port
-h Specify the server address and port number of the remote next hop. If you need censorship circumvention, you need to designate a server that has not been censorship.
-E Encrypt when sending data