kulikov0/whitelist-bypass

GitHub: kulikov0/whitelist-bypass

该工具通过将网络流量隧道化封装为视频通话媒体流,利用已被审查白名单放行的视频会议平台中继传输,实现对政府白名单审查的绕过。

Stars: 1533 | Forks: 89

# 白名单绕过 通过视频通话平台(VK Call、Yandex Telemost、WB Stream)隧道传输互联网流量,以绕过政府白名单审查。 ## 设置 分步设置指南(俄文):[docs/SETUP.md](docs/SETUP.md) ## 工作原理 有两种隧道模式可用:**DC** (DataChannel) 和 **Video** (VP8 数据编码)。推荐的设置是**双端均使用 headless** - 纯 Go (Pion) 直接与平台的 SFU 通信,无需浏览器。ChaCha20 混淆、可配置的 VP8 速率控制以及 LiveKit/WB Stream 后端是仅限 headless 的功能。 传统的浏览器路径(Android `WebView` 加入端配合带有 JS hooks 的 Electron 桌面创建端)仍然适用于 VK DC,但速度较慢、无法混淆,且正在被逐步淘汰。新部署应使用 headless。 ### DC 模式 Pion 在发布端 PC 上打开一个 SCTP DataChannel 并通过它进行 TCP/UDP 隧道传输。数据帧像任何其他 DataChannel payload 一样通过平台的 SFU。 ``` Joiner (censored, Android/iOS/Linux) Creator (free internet) All apps | VpnService (captures all traffic) | tun2socks (IP -> TCP) | SOCKS5 proxy (Go, :1080) | Headless joiner (Pion) Headless creator (Pion) | | DataChannel <------- SFU -------> DataChannel | Relay bridge | Internet ``` ### Video 模式 与 DC 模式的 pipeline 相同,但隧道搭载在已发布的 VP8 视频轨道上,而不是 SCTP DataChannel 上。当 SFU 对 DataChannel 进行限速但允许 RTP 通过时(例如 Telemost),以及在某些平台强制要求的情况下(WB Stream 的发布端轨道始终为视频),此模式非常有用。隧道的帧封装及其上方的多路复用层与 DC 模式相同。 流量通过平台的 SFU 传输,该 SFU 位于政府白名单中。对于 DPI 来说,这看起来就像是一次普通的视频通话。 ## 组件 - `relay/` - 双端共用的 Go relay:SOCKS5 代理、tun2socks 管道、DC/VP8 隧道、ChaCha20 混淆器、连接多路复用器、gomobile/iOS 绑定 - `headless/vk/` - Headless VK 创建端:通过 VK HTTP API 创建或加入通话,Pion DC/VP8 隧道,无需浏览器 - `headless/telemost/` - 具有相同模型的 Headless Telemost (Yandex) 创建端 - `headless/wbstream/` - Headless WB Stream 创建端(基于 LiveKit,使用匿名访客 token) - `headless/wbstream-joiner/` - 桌面端 WB Stream 加入端(创建端的对应程序,用于测试和 Linux 客户端) - `headless/telemost-joiner/` - 桌面端 Telemost 加入端(创建端的对应程序,用于测试和 Linux 客户端) - `headless/vk-bot/` - 独立的 VK Long Poll 机器人,按需生成 headless 创建端并回复加入链接(Electron 机器人的服务端替代方案) - `headless/tests/` - 每个平台的端到端冒烟测试 - `android-app/` - Android 加入端:VpnService + tun2socks + headless Pion(主要路径);同时保留了 `WebView` 回退以用于传统的浏览器流程 - `ios-proxy-app/` - iOS 加入端:SOCKS5 + 通过 gomobile xcframework 实现的 headless Pion - `creator-app/` - Electron 桌面创建端应用:GUI 前端,可以运行传统的浏览器路径或启动 headless Go 二进制文件;适用于交互式使用和部署 - `hooks/` - 用于传统浏览器路径的 JavaScript hooks(DC 和 Video 模式,VK 和 Telemost)。Headless 不使用 JS hooks。 ## 下载 预构建的二进制文件可在 [GitHub Releases](../../releases) 上获取。 ### 创建端(网络自由,桌面端) 从 [GitHub Releases](../../releases) 下载并运行 Electron 应用。它会自动捆绑 Go relay。 1. 打开应用 2. 选择隧道模式(DC 或 Video) 3. 点击 "VK" 或 "Telemost" 4. 登录,在应用内**创建一个新通话** 5. 复制加入链接,并将其发送给加入端 **重要提示:** 通话必须从 Creator 应用内部创建。从应用中加入现有的通话是行不通的 - 因为 JS hooks 必须从通话开始的那一刻起就存在。 ### 加入端(受审查,Android/iOS/Linux) 提供三种形式;请选择适合该设备的形式: - **Android** - 从 [Releases](../../releases) 安装 `whitelist-bypass.apk`。首次启动时允许 VPN 提示。粘贴加入链接并点击 GO;系统全局流量将通过通话传输。 - **iOS** - 从 [Releases](../../releases) 安装 `whitelist-bypass-proxy.ipa`(通过 AltStore / Sideloadly / 你的开发者账号进行侧载)。仅暴露本地 SOCKS5 代理 - 没有系统 VPN。要代理整个设备,请将任何支持 SOCKS5 的 VPN 应用(Shadowrocket、Streisand 等)指向该应用显示的 SOCKS5 endpoint;或者按应用设置代理(Telegram 内置支持)。 - **Linux 桌面** - 运行 headless 加入端;它会在给定端口上为任何你指向它的程序暴露一个 SOCKS5 代理。适用于服务器和 Linux 客户端。可选的 `--socks-user` / `--socks-pass` 启用 SOCKS5 用户名/密码验证。 - WB Stream: `headless-wbstream-joiner --room --socks-port 1080 [--socks-user u --socks-pass p]` -
标签:EVTX分析, Go语言, P2P网络, VPN, WebRTC, 安全合规, 抗审查, 数据可视化, 日志审计, 流量伪装, 流量转发, 程序破解, 网络代理