ITADN
FCFlenkchy/FCAE_VPN
FCFlenkchy/FCAE_VPN · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

FCAE VPN

FCAE VPN

一款专为高度受限网络设计的审查规避客户端。它会自动发现可达路由,建立加密隧道,并为您的应用程序暴露本地 SOCKS5/HTTP 代理。

基于 Aether 构建,提供 Windows、Linux、macOS 和 Android 的原生 GUI 前端。

工作原理

FCAE VPN 连接到 Cloudflare 的 WARP 网络 —— 即 Cloudflare 1.1.1.1 DNS 服务背后的同一基础设施。流程如下:

  1. 账户配置 — 首次启动时,客户端会创建一个 WARP 设备身份,并从 Cloudflare 的注册 API 获取专用的 IPv4/IPv6 地址以及 WireGuard 密钥对。
  2. 端点扫描 — 客户端会探测跨多个端口的 Cloudflare 边缘 IP 列表,以找到可达的网关。每个候选项都会通过真实握手(在 ironclad 模式下可选地通过完整的 HTTP 请求)进行验证,以确认路由确实能传输流量。
  3. 隧道建立 — 一旦找到可用的边缘节点,就会打开一个加密隧道:
    • MASQUE — 使用 CONNECT-IP 方法,将流量封装在 HTTP/3 (QUIC) 或 HTTP/2 (TLS) 会话中,使其在 DPI 系统看来像是正常的 HTTPS 流量。
    • WireGuard — 直接到边缘节点建立标准的 WireGuard UDP 隧道。
    • WARP-in-WARP (gool) — 两个嵌套的 WireGuard 隧道,用于提供额外的加密层。
  4. 本地代理 — 隧道暴露一个本地 SOCKS5 代理(端口 1819)和 HTTP 代理(端口 1820)。配置为使用这些代理的应用程序会通过加密隧道,经由 Cloudflare 的网络将流量路由到互联网。

客户端与 Cloudflare 之间的所有流量都是加密的。从 Cloudflare 开始,流量正常退出到公共互联网。

架构图

┌─────────────────────────────────────────────────────────────────────┐
│                        Your Application                             │
│              (browser, app, or system traffic via TUN)              │
└──────────────────────────────┬──────────────────────────────────────┘
                               │ SOCKS5 :1819 / HTTP :1820
                               ▼
┌─────────────────────────────────────────────────────────────────────┐
│                       FCAE VPN Client                               │
│  ┌────────────┐  ┌────────────┐  ┌────────────┐  ┌──────────────┐   │
│  │  Netstack  │  │  Scanner   │  │  Obfuscat. │  │  Health Mon. │   │
│  │ (TCP/IP)   │  │ (endpoint  │  │  (aether-  │  │  (reconnect  │   │
│  │            │  │  discovery)│  │   noize)   │  │   on fail)   │   │
│  └──────┬─────┘  └────────────┘  └────────────┘  └──────────────┘   │
│         │                                                           │
│         ▼                                                           │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │                    Encrypted Tunnel                          │   │
│  │   ┌───────────┐   ┌──────────────┐   ┌──────────────────┐    │   │
│  │   │  MASQUE   │   │  WireGuard   │   │  WARP-in-WARP    │    │   │
│  │   │ HTTP/3/2  │   │   (UDP)      │   │  (WG inside WG)  │    │   │
│  │   └─────┬─────┘   └──────┬───────┘   └────────┬─────────┘    │   │
│  └─────────┼────────────────┼────────────────────┼──────────────┘   │
└────────────┼────────────────┼────────────────────┼──────────────────┘
             │                │                    │
             ▼                ▼                    ▼
┌─────────────────────────────────────────────────────────────────────┐
│                   Cloudflare WARP Edge                              │
│          (162.159.192.x — automatic discovery)                      │
└──────────────────────────────┬──────────────────────────────────────┘
                               │
                               ▼
┌─────────────────────────────────────────────────────────────────────┐
│                       Public Internet                               │
└─────────────────────────────────────────────────────────────────────┘

协议对比

协议传输层深度包检测(DPI)抗性速度使用场景
MASQUE (HTTP/3)QUIC over UDP最佳 — 外观类似 HTTPS默认选项,抗审查能力最强
MASQUE (HTTP/2)TLS over TCP最佳 — 外观类似 HTTPSQUIC 被封锁时的回退方案
WireGuardUDP中等 — 已加密但可检测最快当 UDP 被允许时
WARP-in-WARP嵌套 UDP高 — 双重加密中等当仅使用 WG 被封锁时的额外层

功能

  • 支持端到端数据平面验证的自动端点发现
  • 支持 MASQUE (HTTP/3 QUIC / HTTP/2)、WireGuard 和 WARP-in-WARP (gool)
  • 支持可配置配置文件(profiles)的流量混淆
  • 支持快速重连的自动重连
  • 本地 SOCKS5 和 HTTP 代理
  • 所有平台原生 GUI(桌面端为 ImGui + DirectX11 / OpenGL,Android 端为 Kotlin Material UI)

内联路由规则

您可以直接在 UI(Routes 选项卡)中定义自定义路由规则,无需外部文件。规则使用简单格式:

[direct]ip:190.9.2.4,192.33.45.6:400,example.com
[block]gazo.com,10.0.0.0/8,keyword:ads

格式:

  • [direct] — 匹配这些规则的流量绕过 VPN(直连)
  • [block] — 匹配这些规则的流量将被完全阻止
  • 条目以逗号或换行符分隔
  • 无前缀的条目默认为 [direct]

支持的规则类型:

类型示例描述
裸域名example.com匹配域名及其所有子域名
完整域名full:example.com仅精确匹配域名
关键词keyword:ads如果域名包含关键词则匹配
正则表达式regexp:^ad[0-9]+\.正则表达式模式匹配
IP / CIDR10.0.0.0/8, 1.2.3.4IP 地址或 CIDR 范围
端口port:25, port:3000-3010端口或端口范围
私有private所有局域网/私有 IP
带端口的 IP192.33.45.6:400带有特定端口的 IP 地址

在桌面上: 打开 Routes 选项卡,并将规则粘贴到 "Inline Routing Rules" 文本框中。

在 Android 上: 滚动到 "Inline routing rules" 并输入您的规则。点击 CONNECT 以应用。

通过内联输入设置的规则具有优先级,并与 "Routing Rules File" 字段中指定的任何规则文件合并。

平台

平台后端UI
WindowsDirectX 11ImGui
LinuxGLFW + OpenGLImGui
macOSGLFW + OpenGLImGui
AndroidKotlin Material VpnService + JNI bridgeKotlin Material UI

截图

Windows UI   Android UI

构建

要求

  • Rust(最新稳定版)
  • C/C++ 编译器(GCC/Clang/MSVC)
  • CMake >= 3.22
  • Vulkan SDK 或 DirectX SDK(Windows)
  • 针对 Android:NDK、Android SDK、Kotlin

首先构建 Rust 引擎

cargo build --manifest-path core/Cargo.toml -p aether-ffi --release

构建原生 GUI

cmake -B build -DAETHER_TARGET=LINUX_X64
cmake --build build --config Release

目标:LINUX_X64, WIN_X64, MACOS_ARM64, MACOS_X64, ANDROID_ARM64.

Android

在 Android Studio 中打开 android/ 并构建。Gradle 配置会自动调用 CMake 并传入 ANDROID_ARM64

致谢

  • Aether — 由 CluvexStudio 开发的核心审查规避引擎。提供 MASQUE、WireGuard 和 WARP-in-WARP 协议。
  • Dear ImGui — 即时模式 GUI 库,用于所有原生桌面渲染。
  • Quiche — Cloudflare 的 HTTP/3 和 QUIC 实现。用作 MASQUE 协议支持的 QUIC 传输后端。
  • Wintun — 由 WireGuard 开发的 Windows TUN 驱动程序。在第三层提供高性能网络接口以用于隧道流量。
  • tun2socks — 一个 Go 库,可透明地将 TUN 设备流量通过 SOCKS5 代理路由。驱动系统级 VPN TUN 模式。

贡献

欢迎贡献!无论是 bug 报告、功能请求、文档改进还是代码贡献——请随时提交 issue 或 pull request。

如何贡献

  1. Fork 该仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 提交你的更改(git commit -m 'Add amazing feature'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 发起 Pull Request

许可证

请参阅各个组件以了解其各自的许可证。


###觉得有用吗?

如果这个项目帮助你绕过了审查,或者只是为你节省了一些时间,请考虑给它一个 star —— 这有助于其他人发现该工具,并激励持续开发。

Star

其他语言: فارسی | 中文