A SOCKS5 proxy with traffic obfuscation capabilities using the Maybenot Framework.
Maybenot Tunnel is a lightweight SOCKS5 proxy that adds an extra layer of obfuscation to your internet traffic. It works by:
- Accepting SOCKS5 connections on port
1080
(will be configurable in future releases) - Establishing connections to target servers
- Applying Maybenot obfuscation to the traffic
- Adding random padding and timing to confuse traffic analysis
The proxy is particularly useful for situations where you need to bypass basic traffic analysis or when you want to add an extra layer of privacy to your connections.
Maybenot is based on the principles of DAITA (Defense Against AI-guided Traffic Analysis), a technique developed to protect against sophisticated traffic analysis attacks. Modern adversaries can use machine learning and AI to analyze encrypted traffic patterns, potentially revealing:
- What websites you're visiting
- What services you're using
- What actions you're taking online
- Communication patterns and behaviors
Even when your traffic is encrypted with HTTPS or VPN, these patterns can be analyzed through:
- Packet timing
- Packet sizes
- Traffic volume
- Connection patterns
Maybenot works by introducing carefully designed randomness to your traffic patterns:
- Adding variable-sized padding to packets
- Fragmenting data into unpredictable chunks
- Introducing timing variations that confuse pattern recognition
- Generating dummy traffic during idle periods
This makes it significantly harder for AI-based traffic analysis to identify patterns in your internet usage, enhancing your privacy beyond what standard encryption provides.
- 🔒 Full SOCKS5 proxy support (IPv4, IPv6, domain resolution)
- 🌐 Automatic TLS/SSL detection and passthrough
- 🧩 Traffic obfuscation using the Maybenot Framework
- 📊 Intelligent handling of different traffic types
- 🔄 Automatic reconnection with exponential backoff
- 📝 Detailed logging with emoji indicators
- Rust and Cargo (1.56.0 or newer)
- Git
- Clone the repository:
git clone https://github.com/necm1/maybenot-tunnel.git
cd maybenot-tunnel
- Build the project:
cargo build --release
- The compiled binary will be available at
target/release/maybenot-tunnel
- Run the proxy:
./target/release/maybenot-tunnel
-
- Configure your application to use the SOCKS5 proxy at
127.0.0.1:1080
- Configure your application to use the SOCKS5 proxy at
That's it! Your traffic is now being obfuscated.
Firefox
- Open Firefox and go to Settings
- Scroll down to "Network Settings" and click "Settings..."
- Select "Manual proxy configuration"
- Enter "127.0.0.1" for SOCKS Host and "1080" for Port
- Select "SOCKS v5"
- Check "Proxy DNS when using SOCKS v5"
- Click "OK" to save Chrome
Chrome
- Open Chrome and go to Settings
- Search for "proxy" and click on "Open your computer's proxy settings"
- On macOS:
- Click "Advanced..." and then select the "Proxies" tab
- Check "SOCKS Proxy" and enter "127.0.0.1" and port "1080"
- Click "OK" and "Apply"
curl --socks5 127.0.0.1:1080 https://example.com
ssh -o ProxyCommand='nc -X 5 -x 127.0.0.1:1080 %h %p' [email protected]
Maybenot Tunnel can be configured by modifying the constants in src/obfuscation.rs
:
pub const MAX_FRAGMENT_SIZE: usize = 1024;
pub const MIN_FRAGMENT_SIZE: usize = 32;
pub const MAX_PADDING_SIZE: usize = 128;
pub const IDLE_THRESHOLD_MS: u64 = 500;
pub const DUMMY_TRAFFIC_INTERVAL_MS: u64 = 2000;
MAX_FRAGMENT_SIZE
: Maximum size of data fragmentsMIN_FRAGMENT_SIZE
: Minimum size of data fragmentsMAX_PADDING_SIZE
: Maximum size of random paddingIDLE_THRESHOLD_MS
: Time before connection is considered idleDUMMY_TRAFFIC_INTERVAL_MS
: Interval for sending dummy traffic
If you're experiencing connection issues:
- Check if the target server is accessible directly
- Ensure no firewall is blocking the connection
- Try increasing the max_consecutive_errors value in
src/server.rs
If you see SSL/TLS errors (like ERR_SSL_VERSION_OR_CIPHER_MISMATCH
):
- The proxy might be interfering with the TLS handshake
- Try visiting a non-HTTPS site first, then the HTTPS site
- If issues persist, check the TLS detection logic in
src/obfuscation.rs
Maybenot Tunnel uses several techniques to obfuscate traffic:
- Traffic fragmentation: Splits data into smaller chunks
- Random padding: Adds random-sized padding to confuse traffic analysis
- Timing obfuscation: Introduces small, random delays
- Protocol detection: Automatically detects and handles different protocols
- Dummy traffic: Generates fake traffic during idle periods
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Maybenot Framework for the obfuscation capabilities
- The Rust and Tokio communities for excellent async runtime and networking libraries