我要搬去中国住一段时间了。如果你了解那里的互联网状况,你就知道防火长城基本上屏蔽了一切——Google、YouTube、WhatsApp、Twitter,甚至 ChatGPT。常见的 VPN 应用也很快就会被检测和封锁
所以我自己造了一个
一个桌面应用,一键就能连接到代理服务器。不需要配置文件,不需要手动设置,不需要终端命令。只要点击一下,你的流量就被加密、混淆,并通过一个防火墙无法与正常网页流量区分的服务器进行路由
为什么不直接用普通 VPN
商业 VPN 是中国最先封锁的东西。他们知道协议,知道服务器 IP,对所有流量进行深度包检测。大多数 VPN 连接在几秒内就会被限速或切断
防火长城其实非常精密。它不只是封锁 IP——它分析流量模式、TLS 指纹、数据包时序。如果你的连接看起来不像正常的网页浏览,就会被标记
所以我需要一个看起来完全不像 VPN 的东西
关键技巧:VLESS + Reality
这就是有意思的地方了。我使用的是 VLESS 协议配合 Reality 传输——而 Reality 做了一件很巧妙的事
它让你的代理流量看起来像是到一个合法网站的正常 HTTPS 连接。在这个方案里,TLS 握手模拟的是到 www.microsoft.com 443 端口的连接。防火墙看到的就像是有人在浏览微软的网站。毫无可疑之处
加密技术栈:
- Reality 处理 TLS 层面的加密和混淆
- xtls-rprx-vision 用于流量控制
- Chrome TLS fingerprint 伪造以匹配真实浏览器流量
- Curve25519 public key 加密用于握手
VLESS 本身将加密设置为 "none",因为 Reality 已经在传输层处理了一切。没有双重加密,没有额外开销,没有可检测的 VPN 特征
技术栈
- Tauri 2 — 桌面应用框架(Rust 后端,Web 前端)
- React 19 + TypeScript — 前端 UI
- xray-core — 运行 VLESS + Reality 的代理引擎
- 3x-ui — 服务器端管理面板
Tauri 是显而易见的选择。Electron 也能用,但为了本质上就是一个连接按钮的东西而打包一个完整的 Chromium 太过分了。Tauri 给了我一个体积很小的原生应用和一个能启动进程、修改系统路由表的 Rust 后端
工作原理
当你点击连接时,大约 2 秒内会发生很多事
自动注册
应用内置了运行在我服务器上的 3x-ui 管理面板的凭据。首次连接时,它会为你的设备生成一个 UUID 并将自己注册为客户端。不需要任何手动步骤
App launch → Generate UUID → Login to panel → Register device → Save identity
之后每次连接只需要检查注册信息是否仍然存在。我追求的是零摩擦——尤其是考虑到可能也需要用这个的家人
代理链路
Your browser→ System SOCKS proxy (127.0.0.1:1080)→ xray-core (local process)→ VLESS + Reality encrypted tunnel (TCP:443)→ Remote server (outside China)→ Internet
xray-core 作为子进程运行。应用写入一个 JSON 配置文件,启动二进制文件,然后轮询 1080 端口直到 SOCKS5 代理就绪。接着它告诉 macOS 或 Windows 将所有流量通过本地代理路由
系统集成
最棘手的部分不是代理——而是让操作系统配合
在 macOS 上,应用以管理员权限运行 networksetup 来设置系统 SOCKS 代理。在 Windows 上,它写入注册表。两者都需要权限提升
应用在连接前会对你的网络状态做快照——默认网关、网络接口、DNS 服务器。如果应用在连接状态下崩溃,下次启动时会自动恢复一切
共享访问
这一点很重要。不只是我一个人需要这个
应用可以将 VLESS URI 导出为二维码。用 Android 上的 v2rayNG 或 iOS 上的 Streisand 扫描就能获得相同的连接。URI 包含了一切——服务器地址、UUID、公钥、Reality 设置。扫一下,就连上了
所以我只需要配置一次服务器,就能跟任何需要的人共享访问。不用解释代理配置怎么用,不用在微信上指导别人敲终端命令
需要改进的地方
面板凭据是硬编码的。面板连接使用 HTTP 而没有 TLS 验证。配置文件以明文存储凭据。作为个人工具这没问题,但我知道在更广泛地分享之前应该修复这些
Rust 代码使用了一些 unsafe 的静态可变状态来处理进程句柄。能跑,但用 Arc/Mutex 的方式会更干净。有时候发布比完美更重要——尤其是当你还有一趟航班要赶的时候
最终成果
一个 15MB 的桌面应用,把一个每月 5 美元的 VPS 变成了防火长城无法检测的个人 VPN。一键连接,一键断开。在任何监控者看来,流量就像正常的网页浏览
有时候最好的工具就是那个没人需要多想的工具。而当你即将失去对半个互联网的访问权时,你就去造你需要的东西
Stay Updated
Get notified about new posts on automation, productivity tips, indie hacking, and web3.
No spam, ever. Unsubscribe anytime.



