分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

infosave2007/aivpn

运维与部署

自建 UDP VPN,并通过流量整形伪装成 QUIC、WebRTC、STUN 等协议。

752
65
Rust
NOASSERTION
创建于 7 个月前

AIVPN 是一个实验性的 Rust VPN:服务端只支持 Linux,客户端覆盖 Linux、macOS、Windows、Android、iOS、MikroTik RouterOS 7.6+ 以及 Entware 路由器。它除了加密 UDP 隧道,还会按选定的 mask profile 调整外层协议、包大小和发送间隔。作者明确不保证能绕过网络限制或防检测,并要求用户遵守所在地法律 实验性声明。

实际改变的是什么

普通隧道只隐藏载荷,外层特征仍在。AIVPN 的 mask 决定外层协议、包大小与发送节奏;服务端 Neural Resonance 用每个 mask 的小模型监测实时流量统计,重构误差超过 MSE 阈值 0.35 时自动轮换 mask,且不断开客户端。会话级 polymorphic mask 会在每个会话中微扰基础 profile,避免同一 profile 被逐字复用。README 对效果的表述很克制:看起来像 STUN 或 QUIC 本身不能证明与某个应用在统计上不可区分;其 ML-DPI 验证标注的是协议一致性,而不是 ISP 检测到 VPN 的概率 README 概览、ML-DPI 报告。

一次连接怎么建立

管理员运行 aivpn-server --add-client,得到一条 aivpn:// 连接密钥,里面包含服务器地址、服务器 X25519 公钥和客户端 PSK。客户端粘贴密钥即可连接。新版本使用 InitialV2 初始交换:先确认新的服务器密钥,之后才传输数据。README 说明 InitialV2 与 1.1.0 及更早的 1.2.0 开发构建不兼容,因此服务器、pool 节点和所有客户端(含移动端嵌入核心)要一起升级;连接密钥格式不变 README 快速开始。

要求与限制

  • 服务端: 仅 Linux。推荐 Docker compose;裸机二进制也可运行并自行安装 NAT 规则,需要放行 UDP 443。Web 管理面板、pool 同步、多跳转发和 SSH 安装器属于服务端技术栈的其他部分 README。
  • 客户端权限: Windows 需管理员权限创建 Wintun 适配器;macOS 使用 utun 并通过 sudo 提权;iOS 需在 macOS + Xcode 15+ 上构建,侧载版本 7 天过期。SOCKS5 代理模式不需要 root 或 TUN,但功能矩阵标明 Android 和 iOS 不支持。
  • 构建: 需要 Rust 1.97+、cargo 和 make;两个 crate 也发布在 crates.io。
  • 可选内核模块: 依赖 Rust-for-Linux API,以及启用 CONFIG_RUST=y 的内核头文件;仅凭内核版本号不能判断可用。没有模块时走用户态 TUN。
  • 功能并非每个客户端都有: 本地 DNS 代理在 Android/iOS 上标为 N/A 或缺失;FEC 反向方向未实现。

升级与运维

安装脚本是幂等的,优先使用 systemd:重跑只会替换二进制和 unit 并重启服务,不会覆盖 server.key 或 clients.json README 高级功能。mask 签名默认是 warn:校验失败仍会加载,只记录警告;切到 enforce 才会拒绝未签名 mask,但前提是先把整套 mask 签名。README 另附威胁模型,没有声称设计能对抗任意对手 威胁模型。仓库声明 MIT 许可 README 许可部分。

HotRepo 点评

仓库创建于 2026-03-26;提供的唯一一次日榜观测是 2026-10-30,744 stars,当天 +49。只有一次样本,无法判断热度上升还是消退。更值得判断的是:这种伪装思路是否适合你已经在运维的 Linux 服务器,而不是 star 数。

本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。