Skip to content

Andrew-Morozko/SOCKSForce

Repository files navigation

SOCKSForce

Tool for forcing the connections through a SOCKS5 proxy.

Intended use: launch the configured SOCKSForce and override the addresses of the domains in /etc/hosts like so:

127.0.0.1 my.domain.name

Requests to my.domain.name will be received by SOCKSForce, wrapped into a SOCKS5 connection and proxied through specified SOCKS server transparently to other programs.

NOTE: listening on privileged ports like 80 or 443 is forbidden for non-root processes. Run sudo setcap 'cap_net_bind_service=+ep' /path/to/SOCKSForce to allow it. If setcap is unavailable you have to run SOCKSForce as root.

Installation

go install github.com/Andrew-Morozko/SOCKSForce@latest

If someone wants a github release with compiled binaries - create an issue.

Usage

Usage of ./SOCKSForce:
  -config string
        Configuration file (default "./config.json")

Fully documented config example can be found in config_example.json

Minimal config:

{
    "defaults": {
        "socks": "host/ip[:port]",
    },
    "routes": [
        {
            "listen_port": 80
        },
        {
            "listen_port": 443
        }
    ]
}

Development

Building with go build -tags enableDebug enables more debug messages.

About

Transparently force HTTP, HTTPS or tcp traffic through SOCKS5 server

Topics

Resources

License

Stars

Watchers

Forks

Languages