anzu-proxy

command module
v0.0.0-...-6ebb1da Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2026 License: GPL-3.0 Imports: 29 Imported by: 0

README

Anzu logo

Anzu Proxy

A small, fast, multi-protocol proxy server.

Features

  • SOCKS5 — username/password auth, CONNECT, BIND, UDP ASSOCIATE, optional TLS (socks5+tls://)
  • HTTP/HTTPS — HTTP/1.1 and HTTP/2 (ALPN), optional TLS listener, optional response cache
  • HTTPS MITM — transparent TLS interception with auto-generated CA and response caching
  • Telegram MTProto — fake-TLS camouflage, indistinguishable from real HTTPS to DPI
  • Shadowsocks AEAD — ChaCha20-Poly1305 or AES-256-GCM, TCP + UDP relay
  • Trojan — real TLS listener with SHA-224 auth and optional HTTPS fallback backend
  • VLESS — lightweight UUID-authenticated proxy over TLS or XTLS Reality; UDP over TCP supported
  • Multi-user authentication via Apache htpasswd files
  • Prometheus metrics endpoint
  • Single binary, no runtime dependencies

Installation

sudo snap install anzu-proxy
Building From Source
make build        # build for current system
make build-all    # cross-compile all supported platforms

Quick Start

# SOCKS5 → :1080  and  HTTP → :8080  (default)
./anzu-proxy
Enable specific protocols
# SOCKS5 only
./anzu-proxy -protocols=socks

# SOCKS5 with TLS (socks5+tls://)
./anzu-proxy -protocols=socks \
    -socks-tls-cert=socks.crt \
    -socks-tls-key=socks.key

# HTTP with cache
./anzu-proxy -protocols=http -cache

# Shadowsocks AEAD
./anzu-proxy -protocols=shadowsocks -ss-password=mypassword

# MTProto (fake-TLS, DPI resistant)
./anzu-proxy -protocols=mtproto \
    -mtproto-secret=$(./anzu-proxy -mtproto-gen-faketls-secret=www.cloudflare.com)

# Trojan (requires a TLS cert — Let's Encrypt or self-signed for testing)
./anzu-proxy -protocols=trojan \
    -trojan-cert=fullchain.pem -trojan-key=privkey.pem \
    -trojan-password=mypassword

# VLESS with XTLS Reality (no certificate required)
PRIV=$(./anzu-proxy -vless-reality-gen-keys | grep Private | awk '{print $NF}')
./anzu-proxy -protocols=vless \
    -vless-uuid=550e8400-e29b-41d4-a716-446655440000 \
    -vless-reality-private-key="$PRIV" \
    -vless-reality-server-name=www.cloudflare.com

# Everything at once
./anzu-proxy -protocols=all \
    -mtproto-secret=$(./anzu-proxy -mtproto-gen-faketls-secret=www.cloudflare.com) \
    -ss-password=mypassword \
    -trojan-cert=fullchain.pem -trojan-key=privkey.pem -trojan-password=mypassword \
    -vless-uuid=550e8400-e29b-41d4-a716-446655440000 \
    -vless-reality-private-key="$PRIV" \
    -vless-reality-server-name=www.cloudflare.com

Documentation

For complete usage instructions, deployment examples, and operational guidance, see the full user guide:

User Guide

License

Licensed under GPLv3 — see LICENSE

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package auth provides a credential store for proxy authentication.
Package auth provides a credential store for proxy authentication.
Package cache implements a two-tier HTTP response cache for anzu-proxy.
Package cache implements a two-tier HTTP response cache for anzu-proxy.
Package config defines the shared server configuration type used by all anzu-proxy servers (HTTP, SOCKS5, MTProto) and their handlers.
Package config defines the shared server configuration type used by all anzu-proxy servers (HTTP, SOCKS5, MTProto) and their handlers.