proxybench

command module
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 1 Imported by: 0

README

proxybench banner

proxybench

Proxy checker and health monitor CLI — validate and benchmark HTTP, SOCKS5, and Shadowsocks proxies.

Go

Features

  • Protocol support: HTTP, HTTPS, SOCKS5, Shadowsocks (ss://)
  • Auto-detection: bare host:port is probed automatically
  • Speed benchmarks: latency min/avg/p50/p95/max + loss rate
  • Throughput measurement: optional large-file download speed test
  • Geo-location: IP → country via embedded local database (no API)
  • Output formats: human table, JSON, CSV
  • No external runtime dependencies — single static binary

Installation

Download the latest release for your platform from the Releases page.

Platform File
Linux x86-64 proxybench_linux_amd64.tar.gz
Linux ARM64 proxybench_linux_arm64.tar.gz
macOS Intel proxybench_darwin_amd64.tar.gz
macOS Apple Silicon proxybench_darwin_arm64.tar.gz
Windows x86-64 proxybench_windows_amd64.zip

Linux / macOS one-liner:

curl -sSL https://github.com/drsoft-oss/proxybench/releases/latest/download/proxybench_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz \
  | tar -xz proxybench && sudo mv proxybench /usr/local/bin/
Build from source

Requires Go 1.21+:

git clone https://github.com/drsoft-oss/proxybench
cd proxybench
go build -o proxybench .

Usage

Check proxies
# Single proxy
proxybench check http://1.2.3.4:8080

# Multiple proxies
proxybench check socks5://10.0.0.1:1080 http://10.0.0.2:3128

# From a file (one proxy per line)
cat proxies.txt | proxybench check

# JSON output
proxybench check socks5://host:1080 --format json

# CSV output (for spreadsheets / pipelines)
proxybench check socks5://host:1080 --format csv

# Custom test URL and timeout
proxybench check http://host:8080 --test-url http://ifconfig.me --timeout 5

Flags:

Flag Default Description
--format, -f table Output format: table, json, csv
--timeout, -t 10 Per-proxy timeout (seconds)
--test-url http://www.google.com URL for forward-check requests
--concurrency, -c 10 Max parallel checks
--geo true Show country info
--db auto Path to ip2country.csv

Benchmark proxies
proxybench bench http://1.2.3.4:8080
proxybench bench socks5://10.0.0.1:1080 --samples 10 --format json

# With throughput measurement
proxybench bench http://host:8080 --payload-url http://ipv4.download.thinkbroadband.com/10MB.zip

Flags:

Flag Default Description
--format, -f table Output format: table, json, csv
--timeout, -t 15 Per-request timeout (seconds)
--samples, -n 5 Requests per proxy
--test-url http://www.google.com Latency measurement URL
--payload-url (none) Large file URL for speed test
--concurrency, -c 5 Max parallel proxies

Geo database management

The check command uses a local IP-to-country CSV database for geo lookups. A minimal seed file is bundled; download the full database with:

proxybench db update

Subcommands:

Command Description
proxybench db update Download latest database from db-ip.com
proxybench db info Show current database path, size, and entry count

Update flags:

Flag Default Description
--dest, -d auto Destination path for the database file
--timeout, -t 120 Download timeout (seconds)

The database is sourced from db-ip.com (CC BY 4.0, free tier) and updated monthly. No API key required.


Output examples

Table (default)
ADDRESS                                        PROTO    ALIVE   LAT(ms)  COUNTRY          ERROR
──────────────────────────────────────────────────────────────────────────────────────────────
http://1.2.3.4:8080                            http     ✓           243  US United States
socks5://5.6.7.8:1080                          socks5   ✗             0                   dial tcp: connection refused
JSON
[
  {
    "address": "http://1.2.3.4:8080",
    "protocol": "http",
    "alive": true,
    "latency_ms": 243,
    "country": "US United States"
  }
]
CSV
address,protocol,alive,latency_ms,country,error
http://1.2.3.4:8080,http,true,243,US United States,
socks5://5.6.7.8:1080,socks5,false,0,,dial tcp: connection refused

Architecture

proxybench/
├── cmd/            # Cobra CLI commands (check, bench, db)
├── internal/
│   ├── checker/    # Liveness checks (HTTP, SOCKS5, Shadowsocks)
│   ├── bench/      # Latency + throughput benchmarks
│   ├── geo/        # IP→country lookup + DB update
│   └── output/     # JSON / CSV / table formatters
├── data/
│   └── ip2country.csv   # Bundled seed database
└── main.go

License

MIT


proxybench is brought to you by Anonymous-Proxies.net — a trusted proxy provider since 2008, delivering premium HTTP, SOCKS5, and residential proxies to thousands of clients worldwide.

Need reliable proxies? Browse our plans →

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package cmd contains all proxybench CLI commands.
Package cmd contains all proxybench CLI commands.
internal
bench
Package bench measures proxy performance over multiple samples.
Package bench measures proxy performance over multiple samples.
checker
Package checker validates proxy connectivity and protocol support.
Package checker validates proxy connectivity and protocol support.
geo
Package geo provides IP-to-country lookups using a local CSV database.
Package geo provides IP-to-country lookups using a local CSV database.
output
Package output formats proxy check and benchmark results as JSON or CSV.
Package output formats proxy check and benchmark results as JSON or CSV.

Jump to

Keyboard shortcuts

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