Skip to content
/ mirage Public
forked from quincy-rs/quincy

Mirage is a next-generation high-performance L3 VPN solution built on Rust, utilizing HTTPS/QUIC transport to support CDN for high-performance, stealthy intranet penetration and networking tools. It perfectly simulates Chrome fingerprints to combat QoS throttling and DPI blocking.

License

Notifications You must be signed in to change notification settings

mciart/mirage

 
 

Repository files navigation

Mirage(开发测试中)

Crates.io Documentation License: AGPL-3.0

Mirage 是一款基于 Rust 开发的下一代隐匿 L3 VPN,集成 BoringSSL (Chrome 同源)、Mirage 伪装协议 (TCP SNI 伪装 + 抗主动探测)、JLS (QUIC 层伪装 + 0-RTT),以及智能流量混淆。

GUI


核心特性

🛡️ 完美的 TLS 指纹伪装

集成 Google Chrome 同源的 BoringSSL,原生支持 X25519Kyber768 (后量子)、GREASE、TLS 扩展随机排列。 任何检测者看到的都是标准 Chrome HTTPS 流量。

🎭 Mirage 伪装协议

TCP 和 QUIC 双协议均具备完整伪装能力,探测者只能看到合法流量:

  • TCP 层: BoringSSL (Chrome 指纹) + SNI 伪装 + ShortID 认证,验证失败反向代理到真实网站
  • QUIC 层: JLS 伪装 (rustls-jls) + 0-RTT 超低延迟,未认证连接自动转发到上游真实网站
  • 无需目标网站证书即可伪装任意域名,抗主动探测

🚀 高性能双协议传输

  • TCP 模式: Length-Prefixed 帧协议 + BBR 拥塞控制 + TCP_QUICKACK + Smart Batching
  • QUIC 模式: JLS 伪装 + 0-RTT 快速握手 + 端口跳跃 (Port Hopping)
  • 协议优先级回退: protocols = ["udp", "tcp"],先尝试 QUIC,失败自动回退 TCP

🌊 流量混淆与纵深加密

  • 应用层加密 (Inner Encryption): ChaCha20-Poly1305 AEAD 独立加密 DATA 帧,即使外层 TLS 被 CDN 剥离,内层数据仍为密文
  • TLS 记录填充: 将写入填充到 16KB TLS Record 边界,对抗记录大小指纹
  • 加权拟态轮廓 (Weighted Traffic Mimicry): 模拟真实 HTTPS 的三态分布
  • 双向填充对称 (Bidirectional Padding): 检测非对称传输并自动增强填充
  • 智能时序抖动 (Jitter): 随机化发包间隔,对抗时序关联分析
  • 应用层心跳 (Heartbeat): 空闲时自动保活,防止"长连接零吞吐"特征

🌐 全双工双栈聚合

  • IPv4/IPv6 并发聚合带宽
  • 多连接池 (1-4 并行连接)
  • 连接轮换 (max_lifetime) 对抗长连接指纹

架构对比

特性 Mirage Xray (Reality) OpenVPN
传输层 TCP/TLS + QUIC + 优先级回退 TCP/TLS, QUIC, WS, gRPC TCP/UDP (自定义协议)
TLS 库 BoringSSL (Chrome 同源) uTLS (Go) OpenSSL
TCP 伪装 类 Reality (SNI + 抗主动探测) Reality 无 (特征明显)
QUIC 伪装 JLS (无需证书 + 抗主动探测 + 0-RTT)
VPN 层级 L3 VPN (原生 ICMP/TCP/UDP) L4 代理 (SOCKS/HTTP) L3 VPN (TUN/TAP)
流量混淆 Padding + Jitter + Heartbeat + Inner Encryption Vision 流控 无 (需插件)
抗封锁 Port Hopping + Dual Stack + 连接轮换 + TLS Record Padding CDN (WS/gRPC) 弱 (协议指纹易识别)
维度 Xray REALITY Mirage
CCS 阈值攻击 致命 (Go 16 vs 源网站 32) 免疫 (BoringSSL 32 全链路)
回落对比攻击 ❌ 两种 TLS 栈行为差异 150% ✅ 同系 TLS 栈,无差异
"Caddy 困境" ❌ 修复后反而更分裂 ⚠️ 仅当 target_sni 指向 Go 服务器时有风险
被动识别 (域名/IP 不匹配) ⚠️ 通用风险 ⚠️ 同等风险
被动识别 (多源单聚) ⚠️ 通用风险 ⚠️ 同等风险

快速开始

支持平台

平台 架构 方式
Windows x86_64 CLI (Wintun)
Linux x86_64, aarch64 CLI
macOS aarch64, x86_64 原生 SwiftUI GUI + CLI
iOS / iPadOS aarch64 原生 SwiftUI GUI (Network Extension)
FreeBSD x86_64, aarch64 CLI

编译安装

CLI (命令行):

cargo build --release
cargo install --path mirage

macOS / iOS GUI:

# 一键编译所有 Apple 平台 Rust FFI 库
zsh resources/scripts/build-apple.sh

# 用 Xcode 打开并构建
open apple/Mirage/Mirage.xcodeproj
# ⌘⇧K (Clean Build Folder) → ⌘R (Run)

使用

mirage client --config client.toml   # 运行客户端
mirage server --config server.toml   # 运行服务端
mirage users --add users             # 管理用户

Docker

docker run --rm \
  --cap-add=NET_ADMIN --device=/dev/net/tun \
  -p 443:443 -v $(pwd)/config:/etc/mirage \
  m0dex/mirage:latest \
  mirage server --config /etc/mirage/server.toml

配置指南

Tip

全局路由: 建议使用 0.0.0.0/1 + 128.0.0.0/1 拆分路由,利用最长前缀匹配原则稳定接管流量。

示例请参考 examples/ 目录。


网络配置 (服务端)

自动 NAT 配置

[nat]
ipv4_interface = "eth0"
ipv6_interface = "eth0"

启用需 root 权限,停止时自动清理。留空则不修改 iptables。

手动配置

# 开启转发
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1

# NAT
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
ip6tables -t nat -A POSTROUTING -s fd00::/64 -o eth0 -j MASQUERADE

# 放行 FORWARD
iptables -I FORWARD -o tun+ -j ACCEPT && iptables -I FORWARD -i tun+ -j ACCEPT
ip6tables -I FORWARD -o tun+ -j ACCEPT && ip6tables -I FORWARD -i tun+ -j ACCEPT

用户管理

使用 Argon2 加密存储密码:

mirage users --add /path/to/users      # 添加用户(users 为用户文件路径,默认 ./users)
mirage users --delete /path/to/users   # 删除用户

路线图

  • Phase 1: TCP/TLS 隧道
  • Phase 2: Mirage 伪装协议 (TCP 层 SNI 伪装 + 抗主动探测)
  • Phase 3: 流量混淆 (Padding, Jitter, Heartbeat)
  • Phase 4: QUIC 传输 (h3 伪装, 0-RTT, Port Hopping)
  • Phase 5: 双栈聚合 + 连接轮换
  • Phase 6: JLS 集成 — QUIC 层 Mirage 伪装 (无需证书, 0-RTT, 抗主动探测)
  • Phase 7: Apple 原生 GUI — SwiftUI (macOS + iOS/iPadOS) + Network Extension
  • Phase 7.5: 纵深加密 — 应用层 ChaCha20-Poly1305 AEAD + TLS 记录填充 + 双向填充对称
  • Phase 8: CDN 支持 (WebSocket, gRPC)

许可证

Mirage 使用 AGPL-3.0 许可证。

About

Mirage is a next-generation high-performance L3 VPN solution built on Rust, utilizing HTTPS/QUIC transport to support CDN for high-performance, stealthy intranet penetration and networking tools. It perfectly simulates Chrome fingerprints to combat QoS throttling and DPI blocking.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 87.3%
  • Swift 11.0%
  • C 1.0%
  • Shell 0.5%
  • Dockerfile 0.1%
  • PowerShell 0.1%