• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Skyline57
V2EX  ›  程序员

写了一个 AI 桌面应用(gpt claude 反重力)的免全局、TUN 的进程代理软件,欢迎大家试用

  •  1
     
  •   Skyline57 · Oct 31 · 1898 views

    Local-AI-Route

    Rust Tauri v2 Vue 3 Tailwind CSS Windows macOS Linux MIT License

    Local-AI-Route 是一款专为桌面 AI 应用打造的轻量级、免全局 TUN 、免改系统代理的进程级本地代理启动与管理工具。开箱原生深度适配:

    • 🤖 ChatGPT(兼容 Windows 商店/独立安装包、macOS App Bundle 、Linux 桌面客户端)
    • 🧠 Claude(兼容 Windows MSIX/Squirrel 、macOS App Bundle 、Linux 桌面端)
    • 🌌 Antigravity 桌面版
    • ⚡ Antigravity IDE(精确区分注册表与应用标识,专项保障 LSP 子进程代理继承)
    • 🧩 自定义扩展:一键添加任意 Chromium / Electron 类桌面 AI 应用(如 Cursor 、Windsurf 等)

    请打开 Local-AI-Route Github 源码 获取更多细节。

    Supplement 1  ·  2 days ago

    技术原理与架构实现

    一、 架构总览与核心设计

    Local-AI-Route 基于 Tauri v2 + Rust 构建,专为桌面 AI 打造免 TUN、免改系统代理的进程级路由工具。

    • 免全局 TUN / 免改系统代理:不改系统网络与注册表,避免 VPN 冲突与内网污染;无须高权限虚拟网卡驱动,常驻待机内存约 20MB。
    • 微内核设计:Rust 直接调用底层原语(Win32 / POSIX),实现微秒级进程派生与状态观测。

    二、 进程级网络接管机制

    针对 Electron/Chromium 与混合架构,从启动阶段完成参数与环境接管:

    1. Chromium 网络栈注入:主进程启动时注入 --proxy-server=<url> 与 --proxy-bypass-list=<rules>,接管页面核心 HTTP/HTTPS/WebSocket 流量。
    2. 强制禁用 UDP QUIC(--disable-quic):针对 AI 依赖的 SSE 长连接,规避本地代理对 UDP QUIC 握手丢包或超时,强制降级至稳定 TCP 隧道,消除断连与白屏。
    3. 多层级环境变量穿透:IDE(Antigravity/Cursor)的代码补全与 Agent 运行于独立 LSP 进程(language_server)。启动前全量注入 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、NO_PROXY 与 NODE_USE_ENV_PROXY=1,确保子进程环境继承。

    三、 跨平台二进制发现与消歧

    1. Windows MSIX 真实路径穿透:针对商店版应用,规避虚拟执行别名(Execution Alias)丢弃命令行参数的缺陷,遍历注册表 AppModel\Repository\Packages 定位真实物理路径。
    2. Squirrel 动态版本自愈:Claude 等目录随更新变动(app-x.y.z/),引擎内置版本比较算法,自动重定向至最新二进制。
    3. 严格应用消歧:通过注册表签名与路径交叉比对,严格区分 Antigravity 独立客户端与 Antigravity IDE。
    4. macOS / Linux:解析 Info.plist 的 CFBundleExecutable;Linux 依据 XDG 规范解析 .desktop 与系统 PATH。

    四、 双层安全生命周期管理

    1. 优雅退出优先:Windows 广播 WM_CLOSE,Unix 发送 SIGTERM,触发客户端内置保存机制,保障未保存草稿完整。
    2. PID 进程树拓扑追踪:针对 Electron 托盘残留,构建进程 DAG 图,超时或重启时递归回收孤儿进程。
    3. 四态状态机:实时比对参数,精确区分 Stopped、RunningDirect、RunningProxied 与 RestartNeeded。

    五、 四维立体连接诊断引擎

    1. 上游隧道探测:经本地代理向探测点握手,明确区分网络超时与 HTTP 403(403 证明 TCP/TLS 代理隧道完全正常,仅为上游 WAF 拦截)。
    2. 主进程命令行核验:实时抓取进程启动参数,校验 --proxy-server 与当前配置端口一致性。
    3. LSP 子进程环境核验:下钻提取 language_server 内存 environ 表,验证 HTTPS_PROXY 继承生效。
    4. 内核级 TCP 连接快照:调用 Win32 IP Helper API(GetExtendedTcpTable)直读内核网络表,精准高亮直连代理端口的 ESTABLISHED 连接。
    5. 隐私脱敏:导出报告时自动正则替换用户家目录为 %USERPROFILE%。

    https://github.com/skyline-e/Local-AI-Route

    19 replies  •  2026-11-02 16:10:15 +08:00
    quxiaojuncuiyue
    1
    已 star https://github.com/liliBestCoder/ghost-proxifier-pro 兄弟项目 互相学习下。
    Skyline57
    Skyline57
    OP
    Oct 31
    2
    兄弟,强啊你这个👍
    已 star✨
    Skyline57
    Skyline57
    OP
    Oct 31
    3
    @quxiaojuncuiyue
    兄弟,强啊你这个👍
    已 star✨
    695975931
    695975931
    Oct 31
    4
    可以,很强,用上了,感谢分享
    maemolee
    maemolee
    Oct 31
    5
    gemini.app 能兼容下吗,大佬
    fovecifer
    fovecifer
    Oct 31
    6
    你不讲原理,那我们为什么要相信你这个机制可以让所有流量都走代理呢?
    在我看来只有虚拟网卡才是唯一可行且保险的机制。
    firefox12
    firefox12
    Oct 31
    7
    本地改 hosts 是不是可以保证所有的流量走到代理服务器去?
    lsls931011
    8
    说实在,我还是信任 tun 模式的。事实上只要你配置好规则, 不开全局 tun 也是可以的
    quxiaojuncuiyue
    quxiaojuncuiyue
    Oct 31 via Android
    9
    @firefox12 当然不能呀
    quxiaojuncuiyue
    quxiaojuncuiyue
    Oct 31 via Android
    10
    @lsls931011 有些情况下不好处理 比如双 vpn 一个连公司内网 一个科学上网那样路由表会打架 还有就是规则配置这个可能得碰到一个不通的域名配置一次 比较麻烦
    firefox12
    firefox12
    Oct 31
    11
    @quxiaojuncuiyue 为什么?是应用会直连 ip 吗?
    quxiaojuncuiyue
    quxiaojuncuiyue
    Oct 31 via Android
    12
    @firefox12 代理是有代理协议的呀 你改 hosts 他也不会发代理协议的呀
    Skyline57
    Skyline57
    OP
    Oct 31
    13
    @lsls931011 可以的,不想写一大堆规则的话可以用这个
    Skyline57
    Skyline57
    OP
    Oct 31
    14
    @firefox12 改 hosts 做不到流量转发
    Skyline57
    Skyline57
    OP
    2 days ago
    15
    @fovecifer 已补充实现原理说明
    fovecifer
    fovecifer
    2 days ago
    16
    我个人建议不要使用这种方式。
    很多 VPN 检测技术或者不标准的实现(有的是无意的,也有故意这么做的)就会绕过你的代理设置,从而暴露你的真实网络。
    PS:TUN 模式其实就是为了规避这种问题而流行起来的,以我的经验,成熟的规则+TUN 还是最保险的。
    Skyline57
    Skyline57
    OP
    2 days ago
    17
    @maemolee 最新版本已兼容
    Skyline57
    Skyline57
    OP
    2 days ago
    18
    @fovecifer TUN 模式对于很多人来说很麻烦。因为电脑上开着公司内网 VPN 、钉钉、微信。TUN 一开,路由表打架内网直接断联,企业合规软件天天弹警告。
    ChatGPT 、Claude 全是 Chromium/Electron 壳子,--proxy-server 加 --disable-quic 就能把 TCP/UDP 压得死死的。
    所谓“成熟规则”也本身就是伪命题:只要规则漏了一条走 DIRECT ,连提示都没有就直接把 IP 卖了,后面应用更新还要去扒有没有新规则。
    Skyline57
    Skyline57
    OP
    2 days ago
    19
    @695975931 谢谢!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 15:11 · PVG 23:11 · LAX 07:11 · JFK 10:11
    ♥ Do have faith in what you're doing.