AnyTLS-RS
A Rust implementation of the AnyTLS proxy protocol that attempts to mitigate the TLS in TLS fingerprinting problem.
AnyTLS-RS provides a proxy solution that disguises proxy traffic as regular TLS connections, making it harder to detect and block.
Features
- TLS Obfuscation: Masks proxy traffic as standard TLS connections
- Flexible Padding: Configurable packet splitting and padding strategies
- Connection Reuse: Reduces latency by reusing connections
- Cross-Platform: Supports Linux, macOS, and Windows
- Certificate Support: Optional custom TLS certificates for server and root CA for client
- SOCKS5 Proxy: Client acts as a SOCKS5 proxy for applications
Installation
From Source
Ensure you have Rust installed (https://rustup.rs/), then:
The binaries will be in target/release/.
Pre-built Binaries
Download from the releases page.
Usage
Server
Start the AnyTLS server:
The server listens on 0.0.0.0:8443 by default.
Client
Start the AnyTLS client as a SOCKS5 proxy:
The client listens on 127.0.0.1:1080 by default. Configure your application to use socks5://127.0.0.1:1080.
Options
Server Options
-l, --listen <LISTEN>: Server listen address (default:0.0.0.0:8443)-p, --password <PASSWORD>: Authentication password (required)--padding-scheme <FILE>: Path to padding scheme configuration file--cert <FILE>: Path to TLS certificate PEM file (optional)--key <FILE>: Path to TLS private key PEM file (optional, PKCS#8 or RSA format)
Client Options
-l, --listen <LISTEN>: SOCKS5 listen address (default:127.0.0.1:1080)-s, --server <SERVER>: Server address (default:127.0.0.1:8443)-p, --password <PASSWORD>: Authentication password (required)--sni <SNI>: Server Name Indication for TLS--root-cert <FILE>: Path to root CA certificate PEM file for server verification (optional)
Examples
Basic Setup
-
Start server:
-
Start client:
-
Configure your browser or application to use SOCKS5 proxy at
127.0.0.1:1080.
With Custom Certificates
-
Generate certificates (example using OpenSSL):
# Generate CA # Generate server cert # Convert to PKCS#8 -
Start server with cert:
-
Start client with root CA:
Custom Ports
Server on port 443:
Client connecting to custom server:
Building
For development:
Documentation
Contributing
Contributions are welcome! Please open issues and pull requests on GitHub.
License
MIT License - see LICENSE file for details.