🛡️ 现代化跨平台网络代理客户端
基于 Flutter + Rust 构建的高性能、安全、易用的网络代理解决方案
项目简介 • 核心特性 • 支持平台 • 系统架构 • 快速开始 • 开发指南
VeloGuard 是一款采用 Flutter + Rust 混合架构开发的跨平台网络代理客户端。项目利用 Rust 的高性能和内存安全特性构建核心代理引擎,通过 Flutter Rust Bridge (FRB) 实现与 Flutter UI 层的高效通信,为用户提供流畅的操作体验和稳定的代理服务。
VeloGuard 支持主流代理协议(Shadowsocks、VMess、VLESS、Trojan、TUIC、Hysteria2、WireGuard 等),提供灵活的路由规则配置,并在 Android 平台通过 VPN Service + TUN 模式实现全局透明代理,在 Windows/macOS/Linux 平台通过 Wintun/tun-rs 实现系统级流量接管。
- 全异步架构:基于 Tokio 运行时,支持高并发连接处理
- 零拷贝优化:最小化内存分配,提升数据转发效率
- 智能连接池:复用连接资源,降低延迟
- 自研 TLS 栈:基于 rustls 的定制化 TLS 实现
| 协议类型 | 支持协议 |
|---|---|
| 代理协议 | HTTP, SOCKS5, Shadowsocks (AEAD-2022), VMess, VLESS, Trojan |
| 隧道协议 | WireGuard, TUIC (QUIC), Hysteria2 |
| 入站协议 | HTTP Proxy, SOCKS5 Proxy, Mixed (HTTP + SOCKS5) |
- 域名规则:Domain / DomainSuffix / DomainKeyword / DomainRegex
- IP 规则:IP-CIDR / SRC-IP-CIDR / GeoIP
- 端口规则:SRC-PORT / DST-PORT
- 进程规则:Process Name 匹配
- 代理组:Selector / URLTest / Fallback / LoadBalance / Relay
- Motion-physics 物理动画系统
- 动态颜色主题 (Dynamic Color)
- 响应式布局,适配多种屏幕尺寸
- 支持 11 种语言国际化
- 流量统计与可视化图表
- 活跃连接管理
- 实时日志查看
- IP 地址检测
| 平台 | 状态 | 最低版本 | 代理模式 |
|---|---|---|---|
| Android | ✅ 已支持 | Android 7.0+ | VPN Service + TUN |
| Windows | ✅ 已支持 | Windows 10+ | Wintun TUN / 系统代理 |
| macOS | ✅ 已支持 | macOS 10.15+ | tun-rs TUN / 系统代理 |
| Linux | ✅ 已支持 | Ubuntu 20.04+ | tun-rs TUN / 系统代理 |
| iOS | 🚧 开发中 | iOS 12.0+ | Network Extension |
| HarmonyOS NEXT | 🚧 开发中 | API 12+ | VPN Extension |
VeloGuard 采用分层架构设计,通过 Flutter Rust Bridge 实现 Dart 与 Rust 的高效跨语言通信。
graph TB
subgraph Flutter["Flutter UI Layer"]
UI[Screens & Widgets]
State[State Management<br/>Provider]
L10n[Localization<br/>11 Languages]
Theme[Material Design 3<br/>Dynamic Color]
end
subgraph Bridge["Flutter Rust Bridge"]
FRB[FFI Bindings<br/>flutter_rust_bridge]
end
subgraph Rust["Rust Core Layer"]
subgraph Lib["veloguard-lib"]
API[Public API]
JNI[Android JNI]
end
subgraph Core["veloguard-core"]
Inbound[Inbound Handler]
Outbound[Outbound Proxy]
Router[Rule Router]
Dispatcher[Traffic Dispatcher]
end
subgraph Network["Network Stack"]
DNS[veloguard-dns]
TUN[veloguard-netstack]
TCP[veloguard-solidtcp]
QUIC[veloguard-quic]
end
subgraph Crypto["Crypto & TLS"]
TLS[veloguard-rustls]
WG[veloguard-boringtun]
end
end
subgraph Platform["Platform Layer"]
Android[Android VPN Service]
Windows[Wintun Driver]
Unix[tun-rs]
end
UI --> State
State --> FRB
FRB --> API
API --> Core
Core --> Network
Core --> Crypto
Network --> Platform
Crypto --> Platform
sequenceDiagram
participant App as 应用程序
participant TUN as TUN 设备
participant Stack as TCP/IP 栈
participant Router as 路由引擎
participant Proxy as 代理出站
participant Remote as 远程服务器
App->>TUN: 发送网络请求
TUN->>Stack: 原始 IP 包
Stack->>Stack: TCP/UDP 重组
Stack->>Router: 连接请求
Router->>Router: 规则匹配
Router->>Proxy: 选择出站
Proxy->>Remote: 代理连接
Remote-->>Proxy: 响应数据
Proxy-->>Stack: 解密数据
Stack-->>TUN: IP 包封装
TUN-->>App: 返回响应
flowchart LR
subgraph Inbound["入站处理"]
HTTP_IN[HTTP Proxy]
SOCKS_IN[SOCKS5 Proxy]
MIXED[Mixed Proxy]
TUN_IN[TUN Device]
end
subgraph Router["路由决策"]
RULES[规则匹配引擎]
GEOIP[GeoIP 数据库]
DOMAIN[域名规则]
end
subgraph Outbound["出站代理"]
DIRECT[Direct]
REJECT[Reject]
SS[Shadowsocks]
VMESS[VMess/VLESS]
TROJAN[Trojan]
TUIC[TUIC]
WG[WireGuard]
HY2[Hysteria2]
end
HTTP_IN --> RULES
SOCKS_IN --> RULES
MIXED --> RULES
TUN_IN --> RULES
RULES --> GEOIP
RULES --> DOMAIN
GEOIP --> DIRECT
GEOIP --> SS
DOMAIN --> VMESS
DOMAIN --> TROJAN
RULES --> TUIC
RULES --> WG
RULES --> HY2
RULES --> REJECT
veloguard/
├── lib/ # Flutter 应用代码
│ └── src/
│ ├── screens/ # 页面组件
│ ├── widgets/ # 可复用组件
│ ├── providers/ # 状态管理
│ ├── services/ # 平台服务
│ ├── l10n/ # 国际化
│ └── rust/ # FRB 生成代码
│
├── android/ # Android 平台代码
│ └── app/src/main/kotlin/
│ └── com/blueokanna/veloguard/
│ ├── MainActivity.kt
│ ├── VeloGuardVpnService.kt
│ └── ...
│
├── rust/ # Rust 工作空间
│ ├── veloguard-lib/ # Flutter FFI 绑定层
│ ├── veloguard-core/ # 核心代理逻辑
│ ├── veloguard-dns/ # DNS 解析器
│ ├── veloguard-netstack/ # 网络栈 (smoltcp)
│ ├── veloguard-solidtcp/ # TCP/IP 栈
│ ├── veloguard-quic/ # QUIC 协议实现
│ ├── veloguard-rustls/ # 自定义 TLS 实现
│ ├── veloguard-boringtun/ # WireGuard 实现
│ ├── tokio-veloguard-tls/ # Tokio TLS 适配器
│ ├── tuic/ # TUIC 协议
│ ├── tuic-quinn/ # TUIC QUIC 实现
│ ├── veloguard-sock2proc/ # 进程名查询
│ ├── unix-udp-sock/ # Unix UDP Socket
│ ├── console-subscriber/ # 调试订阅器
│ └── veloguard-bin/ # CLI 程序
│
├── ios/ # iOS 平台代码
├── macos/ # macOS 平台代码
├── windows/ # Windows 平台代码
├── linux/ # Linux 平台代码
└── ohos/ # HarmonyOS 平台代码
- Flutter SDK 3.24+
- Dart SDK 3.5+
- Android Studio / VS Code
- Xcode 15+ (macOS/iOS 开发)
- Rust 1.75+ (推荐使用 rustup)
- Cargo
- Android NDK r25+ (Android 开发)
- LLVM/Clang (Windows 开发)
# 1. 克隆项目
git clone https://github.com/aspect-build/veloguard.git
cd veloguard
# 2. 安装 Flutter 依赖
flutter pub get
# 3. 安装 Rust 依赖
cd rust && cargo fetch && cd ..
# 4. 生成 FFI 绑定代码
flutter_rust_bridge_codegen generate
# 5. 构建 Android (需要 Android NDK)
cd rust
cargo ndk -t arm64-v8a -t armeabi-v7a -o ../android/app/src/main/jniLibs build --release
cd ..
# 6. 运行应用
flutter run# Android APK
flutter build apk --release
# Android App Bundle
flutter build appbundle --release
# Windows
flutter build windows --release
# macOS
flutter build macos --release
# Linux
flutter build linux --release# 进入 Rust 工作空间
cd rust
# 运行测试
cargo test --workspace
# 代码检查
cargo clippy --workspace
# 格式化代码
cargo fmt --all
# 构建 CLI 工具
cargo build -p veloguard-bin --release# 代码分析
flutter analyze
# 运行测试
flutter test
# 生成国际化文件
flutter gen-l10n# 启用 Rust 日志
RUST_LOG=debug flutter run
# Android 日志查看
adb logcat | grep -E "(VeloGuard|rust)"
# 性能分析
flutter run --profileVeloGuard 兼容 Clash 配置格式,支持以下配置项:
# 基础配置
mixed-port: 7890
socks-port: 7891
allow-lan: false
mode: rule
log-level: info
# DNS 配置
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
# 代理节点
proxies:
- name: "proxy-1"
type: ss
server: server.example.com
port: 443
cipher: aes-256-gcm
password: "password"
# 代理组
proxy-groups:
- name: "Proxy"
type: select
proxies:
- proxy-1
- DIRECT
# 路由规则
rules:
- DOMAIN-SUFFIX,google.com,Proxy
- GEOIP,CN,DIRECT
- MATCH,Proxy欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
本项目采用 AGPL-3.0 许可证开源。
如果 VeloGuard 对你有帮助,欢迎通过以下方式支持项目发展:
![]() |
![]() |
![]() |
|---|
Made with ❤️ by Blueokanna
🛡️ Secure • 🚀 Fast • 🎨 Beautiful


