Avelir

带上服务商给你的链接。 Avelir 负责确认流量真的出得去。

Avelir 是客户端,不是 VPN 服务。访问权以链接的形式来自你的服务商。没有它就无处可连——而应用会在第一个界面上就把这句话告诉你。

状态截至 2026年8月30日。原因见下方

自己跑一遍这项检查

v0.3.5

Nodes marked XHTTP go through where plain TCP does not. Sweden and the Netherlands were topped up on 27 August.

41.2 GB of 100 GB

Favourites 2 nodes 38 ms

XHTTP 38 ms
XHTTP 47 ms

SERVERS · 25 COUNTRIES 92 in total

XHTTP 74 ms
TCP 81 ms
WS 96 ms
gRPC 118 ms
XHTTP 133 ms
TCP 147 ms
SwedenLIVE Sweden - Stockholm #4 · VLESS · reality · 74 ms session 00:00

按「连接」。这五秒是真实的预算,不是进度条。

已过
0.00 s
盾牌
未保护

    两台主机的表现

    需要什么

    下载之前

    A
    一台设备。 Android 或 Windows。暂时没有别的。
    B
    一条来自服务商的链接。 这一部分不归我们:我们只做应用,不提供 VPN 服务。它长这样:
    C
    应用本身。 尚未发布,正在做最后的检查。什么时候会有
    https://panel.example.com/sub/9f3c… 订阅——多台服务器,会自己更新
    vless://…  vmess://…  trojan://… 单台服务器,手动添加
    ss://…  hysteria2://… 换个协议头也是一样

    装着上面任意一种的二维码同样可以,在聊天软件里点一下 vless:// 链接也可以。

    .json 配置文件不是其中之一。Avelir 不读取配置文件。

    这里没有可以粘贴链接的输入框,将来也不会有。订阅链接就是你访问权的钥匙。一个教你把它粘进网页表单的页面,等于替这个站点的仿冒版培养好了它需要的习惯。

    验证

    盾牌有四种状态。 只有两种就得撒谎。

    大多数客户端在隧道网卡一起来就把盾牌变绿。那只证明网卡存在,至于有没有任何东西到得了对面,它什么都没证明。

    在说出「已连接」之前,内核里的一个探测入站会向两台主机索取一个空页面:connectivitycheck.gstatic.com/generate_204,如果它一直不响,就换connectivity-check.ubuntu.com。两台,处在不同法域、不同基础设施上,这样其中一台在你所在地不可达,也不至于给一条好好的隧道定罪。回答必须来自目标本身。整个检查有五秒钟,而这五秒会加到你的连接时间上。这是它的代价,也是唯一诚实的那种代价。

    这项检查可以关掉。关掉之后,「已连接」就只表示隧道起来了。

    5 s

    1200 ms connectivitycheck.gstatic.com connectivity-check.ubuntu.com
    这项检查如何花掉它的五秒. 任何一个目标都不会少于 1200 ms; 第一个目标在 2500 ms 内回答,否则余量交给第二个; 剩下多少都归第二个. 横轴是时间,所以这条线走得匀速:在这里画曲线就是对秒数撒谎。
    盾牌被允许说出口的四件事
    状态 显示 含义
    已保护 已保护 流量已导入隧道 绕过隧道出不去任何东西——无论此刻有没有数据在走。
    未保护 未受保护 网站直接看到你 流量在明文里走,而这是已知的事实,不是推测。
    部分保护 部分受保护 并非所有程序都被接管 Windows 上的代理模式。凡是会向系统询问代理的都在隧道内,主要是浏览器。游戏、BT、QUIC 以及自带网络栈的程序保留着自己的出口,路由表也没有人动过,所以这里没有任何东西能拦住它们。
    未知 保护状态未知 下层不再应答 撑着隧道的那一层不再回答。另外三种状态都不能显示。

    是四种,不是两种,也不是三种。之所以要有「未知」,是因为只有两种状态的盾牌,在下层沉默时必须去猜,而两种猜法都是错的:一种许诺了没人确认过的保护,另一种恰好在最要紧的时刻把你推去按未受保护行事。这四种不只是颜色不同,形状也不同——每十二个男性中就有一个无法只靠颜色把它们分开。

    与此同时连接本身在做什么

    • 已断开
    • 连接中
    • 已连接
    • 重连中
    • 连通性未确认
    • 隧道没有承载任何流量
    • 流量已阻断
    • 状态未知
    • 错误

    其中三条值得读两遍。

    连通性未确认——隧道已经起来并且封住了,但两个检查目标都没有回答,于是应用把「已连接」这句话扣住不说。

    隧道没有承载任何流量——探测没有回音,字节计数器同时也没有动;应用会把这件事说出来并提议断开,但不会自己断开,因为放下网卡就是放下保护,这该由你决定。

    流量已阻断——没有隧道,同时也没有任何东西出去,因为防泄漏在拦着。这和「已断开」正好相反,把两者画成一样会藏起一份确实存在的保护。

    自动选择

    当你没有选服务器时,应用是怎么选的

    简短的答案——「挑最快的」——很少是真的。一次测量只活半小时,而隧道一旦立起来,这些数字之间就完全不可比了。所以几乎每一次连接,靠的都不是速度而是知识:在这张网里,哪个节点真的带过流量。

    1. 先做筛除

      在这张网里已经知道「流量过不去」的节点先被拿掉。筛除是软的——如果筛完一个不剩,就整条撤销。没有 VPN 比在一个可疑节点上连起来更糟。

    2. 然后才比较——如果还有得比

      只比较同一轮、同一种探测的数字:握手测出来的数和真实流量测出来的数差一个数量级,混在一起没有意义。

      30 分钟
      一个数字可供比较的寿命
      2 个节点
      再少就不是比较:只有一名选手的比赛没有冠军
      50 毫秒
      更小的差距不算差距——否则选择会在噪声上抖动,把人在国家之间来回搬
    3. 否则,走四级阶梯

      而这几乎是常态:数字半小时就过期,第二天再打开应用的人,每次都会走到这里。

      1. 这张网的存量 — 在这里真的带过流量的节点
      2. 已确认的通过 — 曾经在某处带过流量
      3. 收藏 — 人的选择,不是应用的观察
      4. 订阅里的第一个节点 — 所能给出的最后依据

      第一级刻意排在第二级之上:移动运营商和家里的路由器放行的节点集合并不相同。昨天在另一个城市还在带流量的节点,在今天这张网里完全可能被彻底封死——所以「这里」比「曾经」更重。

    4. 界面不会替你编一个赢家

      没有可比的东西时,那一行就用话说出来,而不是塞一个推测出来的名字。它还会说明是从多少个里选的:「从三个里选出」和「从一百个里选出」是两种不同的断言。

    5. 测量不会自己启动

      自动选择只根据已经测过的东西做决定。把整份订阅一次性铺开测,意味着从你家的地址接连向上百个境外地址发起数百次连接;这样一条痕迹足以把提供方的整份服务器清单交出去,应用无权背着你启动它。

    6. 如果节点不出声了

      接手的是切换——同一条规则再加冷却:刚刚失败的节点在这一轮里不会被再次推荐。一轮最多切换三次;再往后应用会直说自己没能做到,而不是原地打转。

    能做什么

    仪表盘上

    1. Android · Windows

      分应用代理

      选择哪些应用走隧道,或者哪些绕开隧道。没有被选中的就以明文出去——包括你以后才安装的应用。运营商看得到它们的流量,它们也看得到你的真实地址。应用会在你做选择的那个界面上直说这一点。在 Windows 上,同一份名单按可执行文件记录——chrome.exe——或者按它的路径,并且需要手动填写:系统不会交出已安装程序的列表。按名字写的规则管不到该程序以别的名字启动的东西,而 DNS 查询有可能在连接被归到某个程序之前就已经发出去了。

    2. Windows

      无 VPN 时阻断流量 (kill switch)

      在 Windows 上于 WFP 层过滤:只要它开着,绕过隧道就出不去任何东西——包括隧道已经掉了的时候。局域网和 Hyper-V 虚拟机可以放行,每个口子都恰好只有它自己那么大。在 Android 上,同一件事属于系统:始终开启的 VPN 与「无 VPN 时阻止连接」,应用会把你带到那个系统界面,而不是假装这个开关归它管。

    3. Android · Windows

      自定义 DNS

      普通地址、DNS over HTTPS、DNS over TLS。每一条都可以从列表里直接检查,检查会如实报告返回了什么:带耗时的应答、没有应答、不可达、回答的是另一个问题,或者「这是一个伪造应答者,不是域名服务器」。顺序有意义——全部都问,谁先回答谁算数。

    4. Android · Windows

      自定义路由规则

      把某个站点或某个子网送进隧道、绕开隧道,或者哪儿也不去。你的规则先于服务商的规则被匹配。规则装在有名字的规则集里——「在家」「出差」——而规则集属于你,不属于订阅:换了服务商它们还在。规则集可以用一串字符或二维码带走,里面只有规则:没有订阅,没有服务器,没有密钥。

    5. Android · Windows

      自动选择,自动切换

      自动模式并不是简单地取最快的:测量半小时就过期,所以几乎每一次连接靠的是知识而不是速度——在这张网里哪个节点真的带过流量。规则在上面按步骤讲清楚了。你手动挑定的服务器则保持不变,除非你另作要求。

    6. Android · Windows

      延迟,连同它的离散度

      经由内核自己的入站来测量,免得隧道给自己计时。最优值或中位数,一次探测或五次,另外还有一次会被丢弃的预热探测——对任何服务器的第一个请求都更慢。短横线表示「未测量」,不表示「慢」。

    7. Android · Windows

      四种把链接放进来的方式

      手动输入、从剪贴板粘贴、用相机对准二维码,或者在聊天软件里点一下 vless:// 链接,让它自己落进应用。可以同时有多个订阅,旁边还能摆上你自己的服务器。

    8. Android · Windows

      不开窗口也能操作

      Android 下拉栏里的磁贴。Windows 托盘里的图标,带紧急断开,还有一个「隐藏窗口、保留 VPN」——它的意思就是字面意思。

    9. Android

      当系统固件杀掉隧道

      小米、华为、三星、OPPO 等厂商关闭后台应用比 Android 规定的更狠,VPN 服务也不例外。没有任何应用能禁止自己被杀,也不能自己回来。Avelir 能做的是把你直接带到十家厂商的自启动与电池设置页,并在某个固件根本没有这样的页面时坦白说出来。

    10. Android · Windows

      流量统计

      七天、三十天或全部,按服务器分开。这里统计的是走过隧道的字节——被排除的应用的流量不计入,被订阅规则直连出去的流量计入。这些数字不必和你服务商那边的对上。

    仪表盘上还有:Windows 上以代理模式代替隧道 · 按天统计的流量历史 · 深色与浅色。

    内核

    内核会说哪些话

    这些你不用挑。服务商发给你的那台服务器已经挑好了,链接里带着这个选择。

    Protocols
    VLESS · VMess · Trojan · Shadowsocks · Hysteria2 · SOCKS · HTTP
    Security
    TLS · REALITY, plus the XTLS flow and VLESS Encryption on VLESS
    Transports
    TCP · WebSocket · gRPC · XHTTP · HTTPUpgrade · mKCP
    Core
    Xray-core,经由 libXray v26.7.11,按指定修订版自行编译,而不是拿现成的二进制

    数据

    应用发送了什么,又是谁收到

    当 Avelir 向你服务商的面板索取服务器列表时,随请求一起走的有五样东西:

    x-hwid: 3f2b9a41-7c04-4e18-9a6d-5b1e0c7f2d83
    x-device-os: Android
    x-ver-os: 14
    x-device-model: Pixel 7
    user-agent: Avelir/0.3.5 (Android 14)

    有些面板只回应它认得的客户端。为此有一个开关:它把一个知名客户端的名字放进 user-agent,把我们自己的名字挪到 x-app-agent。默认关闭。

    它们发往你自己填的那个地址。不是发给我们——我们没有可以接收它们的地址,也没有服务器去接。

    这个标识符不是你的手机。它是首次启动时生成并保存下来的随机 UUID,从不由硬件推导:IMEI、MAC 地址和序列号都无法重置,读取它们同时违反 Google Play 和 App Store 的规定,而随机值用来数设备一样好用。按你的订阅统计设备数量,就是它的全部工作。它就放在设置里,服务商的客服要的正是它。

    诊断日志在写入时就把凭据剔除了,所以可以原样发给客服。

    构建

    即将发布:Android、Windows、iOS 和 Linux

    0.3.5 的 Android 与 Windows 构建已经存在并且能跑,Linux 的软件包已经打好,iOS 已经能在真实 iPhone 上运行。这个站点上目前还没有发布任何东西:Android 构建已用发布密钥签名,正走向 Google Play;iOS 正走向 TestFlight 与 App Store;Windows 安装程序仍然没有签名。

    这个站点上每一条状态都带日期。状态变了,先在这里变。

    android
    即将发布 发布时约 69.7 MB
    windows
    即将发布 发布时约 24.9 MB
    ios
    即将发布
    macos
    计划中
    linux
    即将发布

    什么时候会有

    问题

    人们真正会问的问题

    你们会记录我做了什么吗?

    我们这边没有任何东西能记录。Avelir 没有服务器、没有账号、没有后端;你的会话没有任何部分到得了我们这里,因为根本不存在一个「我们」可以到达。应用会在你自己的设备上写一份诊断日志,条目里的凭据已被剔除,除非你自己把它发给服务商的客服,它就一直留在那里。你的服务商在他的服务器上记录了什么,是你和他之间的事,我们无法替他回答。

    设备标识符是什么?能关掉吗?

    能关,从 0.3.5 起:设置 → 高级 → 「发送设备标识符」。关掉之后这个标头根本不再发送,而不是发一个空值。代价在面板那边:你的服务商靠它统计设备名额,会统计的面板拿不到它就不返回服务器。它是首次启动时生成并保存的随机 UUID,从不由你的硬件推导。它发往你填写的那个面板地址,不是发给我们。它就在设置里,客服要的正是它。

    它会隐藏我的地址吗?

    应用不回答这个问题,也不再假装能回答:向外部服务查询你地址的那项检查已在 0.3.5 中移除,因为它意味着把一次来自你的请求交给我们无法控制的第三方。应用真正能证明的更窄也更有用:流量确实是从隧道出去的。至于外面看到的是哪个地址,完全取决于你的服务商给了你哪台服务器、又是怎么运营它的。

    我的 iPhone 能用吗?

    还不能,但比之前近了。自 2026 年 8 月 28 日起,Avelir 已在真实 iPhone 上运行:隧道扩展承载流量,订阅、服务器列表与节点测速都可用。它正走向 TestFlight 与 App Store,从这里暂时还没有可安装的东西。macOS 尚未开始。Linux 已打包,正等待发布。上面的状态都标明最后一次成立的日期。

    为什么 Google Play 上没有?

    目前根本没有任何已发布的版本,不在任何商店,也不在别处。上架申请正在准备:Android 构建已用发布密钥签名,商店问卷与隐私政策都已完成,剩下的在账号那一侧,不在代码里。

    源代码开放吗?

    内核和各个库是开放的,应用里逐条列出了它们的许可证和源码地址。Xray-core 是作为未经修改的依赖使用的,所以其中没有需要我们发布的部分。Avelir 自身的代码没有公开。