httpRelay
httpRelay copied to clipboard
HTTP Proxy Relay is a tool to create an HTTP proxy that connects to and relays all requests through a SOCKS proxy.
HTTP proxy to SOCKS 5 proxy relay
Single-purpose HTTP proxy relaying requests to an existing (external) SOCKS 5 proxy server. This tool is useful in the case where the SOCKS proxy is the only proxy available, but the application that you wish to use does not support SOCKS. This little program is a welcome addition to SSH's capability of setting up a SOCKS proxy server.
Please note: This implementation is specifically limited to this use case only. Other use cases may be trivial to create, however they are not part of this implementation.
Usage
./relay -listen :8080 -socks localhost:8000 -block "127.0.0.1,localhost,192.168/16"
Start a HTTP relay proxy that listens on port 8080 of every interface and connects to a SOCKS proxy server on localhost port 8000 for relaying your requests. Block requests that attempt to access 127.0.0.1, 'localhost' or any address in the ip range 192.168.0.0-192.168.255.255.
./proxy -listen localhost:8080 -block "127.0.0.1,localhost,192.168/16"
Start a (tiny) generic HTTP proxy server that listens on port 8080 of 'localhost' and proxies requests directly to the internet. Block any requests to 127.0.0.1, 'localhost' or any address in the ip range 192.168.0.0-192.168.255.255.
Program arguments
The program arguments that are available to both programs.
-blockprovide any number of network addresses/ranges to protect from access through the proxy/relay.-blocklistspecify ahosts-formatted blocklist to be loaded and used.-listenspecify the address and port on which to listen for incoming proxy connections.
The following program arguments are applicable to relay only.
-socksthe SOCKS proxy to which to forward http proxy requests.
Building
The simplest way to build is: make.
This build will use the build flag -tags netgo to make the result independent of gcc. Refer to Makefile for details.
Changelog
- 2020-02-04 Added support for loading in blocklists that are checked as part of the proxying process.
The program argument-blocklist <filename>allows loading hostname blocklists formatted as the OShostsfile. Blocklists in these formats can be downloaded from various places, such as NoTracking and EnergizedPro. - 2019-12-22 Added support for Go modules.
- way back Support for http proxy/relay, with
-blockparameter to protect local network and/or specific addresses/networks from being accessed.