OpenFlux
English | Русский
Network stack research tool. TCP tunnel with pluggable transports.
Overview
Client (SOCKS5) --> Transport --> Exit Node --> Internet
Requirements
- Golang v. 1.26.3+ - is required for building desktop client / exit node binary (universal-bypass-tool);
- Android Native Development Kit (NDK) v.27.0.12077973+ - is required for building Android client binary;
- XCode v. 26.6+ - is required for building iOS client binary;
- Linux VPS / VDS exit node.
Overview
TCP packets are sent via Transport. Currently, there are two transports available:
- Yandex - sends packets via Yandex Docs cursor messages;
- Max - sends packets via WebRTC DataChannel.
Structure
universal-bypass-tool/
├── main.go
├── transport/
│ ├── transport.go # Transport interface
│ └── yandex/ # Yandex Docs backend
│ └── oneme/ # MAX Messenger backend
├── tunnel/
│ ├── tunnel.go # TCP tunnel core
│ ├── endpoint.go # Virtual NIC
│ └── rawsocket.go # Raw socket (exit node)
├── socks5/ # SOCKS5 server
├── network/ # Checksums, packet parsing
└── utils/ # Debug logging
Build (desktop client / exit-node binary)
go mod tidy
go build -o universal-bypass-tool .
Build for Android (client binary)
export ANDROID_NDK_HOME=<your Android NDK path>
./build_android.sh
Build for iOS (client binary)
export XCODE_PATH="<your Xcode.app path>" # optional, defaults to /Applications/Xcode.app
./build_ios.sh
Usage
1. Setting up exit node
- You must have root access on exit node machine;
- Only legacy Yandex document editor is supported (you can toggle this setting from the interface).
sudo iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
sudo ./universal-bypass-tool --exit-node --url "YOUR_YANDEX_DOC_URL" --debug
1. Setting up desktop client:
Setup commands for desktop client:
./universal-bypass-tool --client --url "YOUR_YANDEX_DOC_URL" --socks5 :1080 --debug
Then set up SOCKS5 proxy in your browser at localhost:1080.
Flags
| Flag | Default | Description |
|---------------|---------------------|----------------------------|
| --client | | Run as client |
| --exit-node | | Run as exit node |
| --socks5 | :1080 | SOCKS5 listen address |
| --url | https://localhost | Document URL (Yandex Docs) |
| --maxToken | ` | Auth token (Max) |
| --maxUid | | User ID (Max) |
| --debug | false | Enable verbose logging |
| --transport | yandex | Select transport backend |
Implementing custom transports
You are free to implement the Transport interface from transport/transport.go` and register your custom transport in main.go switch block.
License
This project is licensed under the GNU General Public License v3.0 or later. See LICENSE for the full text.
Third-party licenses are listed in NOTICE.
Disclaimer
Educational use only. Test on your own machines and networks.