A research tool for routing network traffic through web services
Imagine a browser request passing through a specific web page before heading out to the internet. OpenFlux is a research tool that routes TCP/UDP traffic through various web services to control and observe transmission paths. Written in Go, it acts as a client and exit node, used to analyze network stack behavior.
Web-based transmission paths and script extension
OpenFlux uses several web services, such as Yandex.Docs, Mail.ru Docs, and Direct, as transmission paths. It includes a signed JavaScript engine that allows creating new transmission methods without modifying or rebuilding Go code. This engine is based on goja and manages script reliability through a host API and signature system. Sessions that run multiple transmission paths simultaneously support authenticated negotiation, encryption, and automatic failover.
Two processing modes for exit nodes
Exit nodes operate by selecting one of two backends: L3 or L4. L3 mode uses raw SNAT/DNAT to pass TCP/UDP packets directly and requires root privileges in a Linux environment. This method maintains end-to-end tunneling. L4 mode terminates traffic in user space via a gVisor proxy and reconnects to the actual server. L4 works without root privileges on all operating systems and serves as an alternative when L3 is not implemented on Windows and macOS.
Build and execution procedures
After organizing Go modules and building the binary, run the exit node and client separately. The exit node runs with --role=exit, specifying L4 mode and a specific transmission method. The client runs with --role=client, specifying a SOCKS5 inbound and the same transmission method; set the browser's proxy address to 127.0.0.1:1080. Mobile client builds require Android NDK r27+ or Xcode 26.6+, while VPS-based exit nodes require a Linux VPS/VDS.
Points to know before use
This tool does not encourage bypassing network restrictions or violating platform rules, and users are responsible for the results of their use. The code is distributed under the GNU General Public License v3.0 or later, provided without any warranty. The script-based transmission engine and exit nodes using PHP hosting without a VPS are relatively new features currently accumulating real-world use cases. Native L3 exit backends for Windows and macOS are not yet implemented, so L4 mode must be used on those platforms.