Bind and reverse connection (with encryption) based, SOCKS5, HTTP and PortForward proxy.
\
FullProxy
is a Bind
and Reverse Connection
(with encryption) based HTTP
, SOCKS5
and PortForward
portable proxy
user@linux:~$ fullproxy help
Usage:
fullproxy PROTOCOL *FLAGS
Protocols available:
- socks5
- http
- local-forward
- remote-forward
- master
- translate
user@linux:~$ fullproxy socks5 --help
Usage of socks5:
-host string
Host to listen on. When "-slave" flag is set, is the IP of master to connect
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored in slave mode and when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored in slave mode and when inbound-blacklist is set)
-outbound-blacklist string
File with a host per line. Denied outgoing connections (ignored when outbound-whitelist is set)
-outbound-whitelist string
File with a host per line. Allowed outgoing connections (ignored when outbound-blacklist is set)
-password string
Password of the running proxy, requires "-username". It will be ignored if is an empty string
-port string
Port to listen on. When "-slave" flag is set, is the Port of the master to connect. I both modes the default port is 1080 (default "1080")
-slave
Connect to a master, no bind proxying
-timeout int
The number of second before re-trying the connection between target and client (default is 10 seconds) (default 10)
-tries int
The number of re-tries that will maintain the connection between target and client (default is 5 tries) (default 5)
-username string
Username of the running proxy, requires "-password". It will be ignored if is an empty string
HTTP proxy could be implemented thanks to GoProxy
user@linux:~$ fullproxy local-forward -help
Usage of http:
-host string
Host to listen on. When "-slave" flag is set, is the IP of master to connect
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored in slave mode and when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored in slave mode and when inbound-blacklist is set)
-outbound-blacklist string
File with a host per line. Denied outgoing connections (ignored when outbound-whitelist is set)
-outbound-whitelist string
File with a host per line. Allowed outgoing connections (ignored when outbound-blacklist is set)
-password string
Password of the running proxy, requires "-username". It will be ignored if is an empty string
-port string
Port to listen on. When "-slave" flag is set, is the Port of the master to connect. I both modes the default port is 8080 (default "8080")
-slave
Connect to a master, no bind proxying
-tls
Use HTTPS
-username string
Username of the running proxy, requires "-password". It will be ignored if is an empty string
user@linux:~$ fullproxy local-forward -help
Usage of local-forward:
-forward-host string
Host to forward the traffic received from master
-forward-port string
Port to forward the traffic received from master
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored when inbound-blacklist is set)
-master-host string
Host of the master
-master-port string
Port of the master
-timeout int
The number of second before re-trying the connection between target and client (default is 10 seconds) (default 10)
-tries int
The number of re-tries that will maintain the connection between target and client (default is 5 tries) (default 5)
user@linux:~$ fullproxy remote-forward -help
Usage of remote-forward:
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored when inbound-blacklist is set)
-local-host string
Host to bind by slave
-local-port string
Port to bind by slave
-master-host string
Host of the master
-master-port string
Port of the master
-timeout int
The number of second before re-trying the connection between target and client (default is 10 seconds) (default 10)
-tries int
The number of re-tries that will maintain the connection between target and client (default is 5 tries) (default 5)
user@linux:~$ fullproxy remote-forward -help
Usage of master:
-forward-host string
Argument required to handle correctly the "remote-forward" (This is the service that the master can only acceded)
-forward-port string
Argument required to handle correctly the "remote-forward" (This is the service that the master can only acceded)
-host string
Host to listen on. (default "0.0.0.0")
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored when inbound-blacklist is set)
-port string
Port to listen on. (default "1080")
-timeout int
The number of second before re-trying the connection between target and client (default is 10 seconds) (default 10)
-tries int
The number of re-tries that will maintain the connection between target and client (default is 5 tries) (default 5)
user@linux:~$ fullproxy translate help
Usage:
fullproxy translate TARGET *FLAGS
TARGETS available:
- port_forward-socks5
user@linux:~$ fullproxy translate port_forward-socks5 -help
Usage of port_forward-socks5:
-bind-host string
Host to listen on. (default "0.0.0.0")
-bind-port string
Port to listen on. (default "8080")
-inbound-blacklist string
File with a host per line. Denied incoming connections to the proxy (ignored when inbound-whitelist is set)
-inbound-whitelist string
File with a host per line. Allowed incoming connections to the proxy (ignored when inbound-blacklist is set)
-socks5-host string
SOCKS5 server host to use (default "127.0.0.1")
-socks5-password string
Password for the SOCKS5 server; leave empty for no AUTH
-socks5-port string
SOCKS5 server port to use (default "1080")
-socks5-username string
Username for the SOCKS5 server; leave empty for no AUTH
-target-host string
Host of the target host that is accessible by the SOCKS5 proxy
-target-port string
Port of the target host that is accessible by the SOCKS5 proxy
-timeout int
The number of second before re-trying the connection between target and client (default is 10 seconds) (default 10)
-tries int
The number of re-tries that will maintain the connection between target and client (default is 5 tries) (default 5)
Handles the proxying between a reverse connected (with encryption) proxy and the clients. In other words, it will receive the connections of the clients and will forward the traffic to the proxy that is reverse connected to it.
- It first binds to the host specified by the user.
- Then accept the connection from the proxy server.
- Finally, it proxy the traffic of all new incoming connections to the proxy server that was reverse connected to it in the second step. In other words, is the proxy of another proxy but totally invisible for the client.
This could be specially useful when you need to proxy a network that a machine have access to, but you can't bind with it
- The
master
protocol may loss some setup connections if it is extremely stressed, but it should workjust fine
if the connections where already made
This protocol is simple, it receives proxying request in a specific proxying protocol to them forward them to another proxy with another protocol; this means that if you only speaks SOCKS5, you will be able to talk to an HTTP proxy using this "translator"
You can find pre-compiled binaries for windows and linux Here
Run this command:
go get github.com/shoriwe/FullProxy
If you have any suggestion for new features, also leave them in the issue section or create the proper branch, add what do you want and request a pull request