OpenFlux 是一个面向网络协议栈研究者的开源 TCP 隧道工具,它不依赖传统代理协议(如 HTTP/SOCKS),而是将 TCP 数据包“伪装”成日常互联网服务的合法流量,通过可插拔的传输层(Pluggable Transports)实现端到端隧道。它不为绕过审查而生,但其架构设计天然具备强隐蔽性与协议混淆能力;它不提供一键翻墙功能,却为安全研究员、协议开发者和网络极客提供了可深度定制、可逆向分析、可复现验证的底层网络实验平台。
核心功能
- 多通道协议混淆隧道:支持 Yandex Docs 光标位置消息、MAX Messenger 的 WebRTC DataChannel 两种传输后端,让 TCP 流量在看似无害的协作编辑或实时通讯行为中“静默穿行”,有效规避基于 DPI 的简单协议识别。
- 纯用户态 TCP 栈封装:客户端启动本地 SOCKS5 代理,出口节点在 Linux VPS 上运行独立用户态网络栈(基于 gVisor 技术思路),无需 root 权限即可完成数据包解封装与转发,降低部署门槛并提升沙箱安全性。
- 跨平台原生客户端支持:已提供完整 Android APK(独立构建)、iOS TestFlight 系统级 VPN(支持 DNS-over-TLS、后台保活、稳定性增强),且所有客户端均调用同一套 Go 编写的底层隧道库(liboflux.a),保证行为一致性与调试可追溯性。
- 零商业意图的纯粹研究导向:项目明确声明“非商用、无付费功能、无隐藏订阅”,全部代码以 GPL-3.0 协议开放,构建脚本(build_ios.sh / build_android.sh)完全公开,连 iOS 静态库编译流程都细致拆解,方便学术复现与教学使用。
- 模块化传输接口设计:通过 transport.go 定义统一 Transport 接口,Yandex 和 MAX 后端各自封装于独立子目录(yandex/、oneme/),压缩器(compressor.go)作为可选中间件插入,便于研究人员快速接入 Telegram Bot API、Notion API 或自建 Webhook 服务等新型“载体”。
- 面向真实网络环境的压力适配:iOS 客户端已集成 DNS-over-TLS 支持,Android 版本采用 NDK 原生编译,避免 Java 层 Socket 中断问题;exit node 的 rawsocket_{linux,darwin,windows}.go 按平台分离实现,兼顾性能与兼容性。
- 透明的风险警示机制:对 MAX 运输层明确标注“禁止使用主账号”“可能触发永久封禁”,并在 README 中反复强调作者不承担第三方衍生版本责任——这种坦率的技术伦理声明,在同类工具中极为罕见,反而增强了专业可信度。
技术亮点
- “运输即协议”的分层抽象:不同于 Shadowsocks 的加密+混淆二合一,OpenFlux 将“传输载体”(Transport)与“隧道逻辑”(Tunnel)彻底解耦。transport/ 目录下每个实现只负责“如何把字节发出去/收回来”,tunnel/ 目录则专注 TCP 分段、校验、虚拟网卡(endpoint.go)与原始套接字操作,架构清晰利于教学与审计。
- Go 语言全栈穿透能力:服务端(exit node)、桌面 CLI 客户端、Android NDK 绑定层、iOS Swift 桥接库(export_ios.go + cgo)全部由 Go 实现。借助 CGO 和 build tags(如 ios 构建标签),一套核心逻辑无缝覆盖 Linux/macOS/Windows/Android/iOS 五大平台,极大减少跨平台维护成本。
- 轻量级用户态网络栈实践:exit node 不依赖 iptables 或 tun/tap 设备,而是通过 rawsocket_linux.go 直接构造 IP/TCP 包,结合 gvisor 思路实现用户态协议栈,既避开内核模块签名难题(尤其 macOS/iOS),又为研究 TCP 拥塞控制、重传机制、MTU 发现等底层行为提供干净沙箱。
- 真实服务 API 的创造性复用:Yandex 文档光标同步接口本用于协作编辑状态同步,OpenFlux 将其转化为低频、高隐蔽性的信令通道;MAX 的 WebRTC DataChannel 本为音视频传输设计,却被用于承载任意 TCP 流量——这种“借壳运输”不是漏洞利用,而是对现有服务协议边界的深度探索。
适合哪些人用
OpenFlux 不是给普通用户“点开即用”的代理 App,它的理想用户是:高校网络协议课程教师、CTF 网络方向出题人、隐私保护初创公司协议工程师、以及对 TCP/IP 栈有动手欲的资深爱好者。
真实场景举例:
• 某大学《计算机网络》课程实验中,教师要求学生对比不同传输载体(HTTP/2、WebRTC、WebSocket)对 TCP 延迟抖动的影响,学生可基于 OpenFlux 的 transport 接口快速替换后端,采集真实网络下的 RTT 数据;
• 一家专注抗审查通信的初创团队,在评估 MAX Messenger 是否适合作为备用信道时,直接复用 OpenFlux 的 oneme/ 模块进行压力测试与封禁策略逆向,节省数周基础框架开发时间。
快速上手
桌面端(Linux/macOS/Windows)只需两步:
- 安装 Go 1.26.3+,克隆仓库:
git clone https://github.com/p1neappleXpress/OpenFlux - 构建通用二进制:
cd OpenFlux && go mod tidy && go build -o universal-bypass-tool .
运行 exit node(需 Linux VPS):./universal-bypass-tool --mode exit --transport yandex --yandex-doc-id=xxx
客户端连接 SOCKS5:curl --proxy socks5://127.0.0.1:1080 https://httpbin.org/ip
Android/iOS 用户请直接前往对应仓库下载预编译版:Android APK 在 OpenFluxAndroid,iOS 通过 TestFlight(邀请码 BwnAcdus)安装。
同类对比 / 注意事项
- vs Shadowsocks / Xray:后者聚焦生产环境高性能代理,OpenFlux 则专注“载体可行性研究”。它不优化吞吐量,但提供更底层的协议操控粒度(如手动构造 ACK 包、篡改 TCP 选项字段),适合做协议指纹对抗实验。
- vs Obfs4 / Meek:Obfs4 是 Tor 生态专用混淆协议,Meek 模拟 HTTPS 流量;OpenFlux 的 Yandex/Max 方案更进一步——它模拟的是具体 SaaS 产品的**业务行为**(光标移动、P2P 连接),而非通用协议特征,混淆层级更高。
- 重要提醒:MAX 运输层存在真实封号风险,README 明确警告“限制可能在停止使用后持续”,务必使用一次性小号;Yandex 文档需切换至“旧版编辑器”才可用,新版接口已失效;所有 fork 衍生版本均不在作者支持范围内,请勿盲目信任第三方修改版。
项目信息
Network stack research tool. TCP tunnel with pluggable transports.
1.4k
今日 +355 stars today
Stars
103
Forks
Go
GPL-3.0
编程语言:Go|GitHub Star 数:1397|开源协议:GPL-3.0|GitHub 项目地址
如果你厌倦了黑盒代理工具,渴望亲手拆解“流量是如何被看见又看不见的”,OpenFlux 就是那个为你打开 TCP/IP 协议栈后门的精密钥匙——它不承诺自由,但慷慨交付理解自由的全部零件。


