freebind-proxy

module
v0.0.0-...-c624de0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2024 License: MIT

README

Go IP_FREEBIND HTTP Proxy

A Go implementation of an HTTP Proxy that leverages the IP_FREEBIND socket option to randomize the source IP address for outgoing HTTP requests. This proxy is compatible with both IPv6 and IPv4 subnets.

Features

  • Randomized Source IPs: Makes HTTP requests with randomized IPs from a specified subnet
  • IPv6 & IPv4 Support: Works seamlessly across IPv6 and IPv4 environments
  • Flexible Usage: Can be used as either a standalone binary or embedded as a library

Requirements

  • Linux (due to the reliance on IP_FREEBIND)
  • Correctly assigned and configured network subnet on the machine

Setup

Assume your ISP has assigned the subnet 2a00:1450:4001:81b::/64 to your server.

In order to make use of freebinding, you first need to configure the Linux AnyIP kernel feature in order to be able to bind a socket to an arbitrary IP address from this subnet as follows:

ip -6 route add local 2a00:1450:4001:81b::/64 dev lo

Installation

  • As a Standalone Binary:

    go install github.com/codercms/freebind-proxy/cmd/freebind-proxy@latest
    
  • As an Embeddable Library:

    go get github.com/codercms/freebind-proxy
    

Usage

  • Run as a Binary: After installation, execute the binary from your $GOPATH/bin:

    freebind-proxy -net 2a00:1450:4001:81b::/64
    

    See -help for more options

  • Embed as a Library: Import and use in your Go project:

    import "github.com/codercms/freebind-proxy/proxy"
    

Refs

Directories

Path Synopsis
cmd
freebind-proxy command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL