Skip to content

流量、额度与限制 ​

本页跟随用户的流量,从承载它的节点一直到用户页面上的数字,并说明账户上的每种限制在何处生效。设置限制的方法见 用户 和 套餐。

收集流量 ​

节点在内存中按入站、按出站、按用户计数字节。面板每 30 秒收集一次所有节点的计数器:

  • 节点在上报每个计数器的同时将其清零,所以每个字节恰好上报一次。
  • 面板在一个数据库事务中写入一整次收集的数据。 如果写入失败,这次收集会保留在内存中,并加到下一次里,所以数据库繁忙也不会丢失数据。
  • 与面板断开的节点 会继续计数,直到停止服务。如果它在面板再次访问到它之前就停止了,那么面板上次收集之后它承载的流量会丢失;参见 节点与面板。

一次收集,两份记录 ​

每次收集都会同时写入两个地方:

记录用途保留期
账本:按节点、按用户、按节点和用户,以及每个账户的总计额度、代理商配额、报表 API(/api/reports/*)永久
图表序列:按时间分桶的原始字节流量图表按统计保留期,默认 30 天;设为 0 则停止记录

报表读取的是账本,所以关闭图表永远不会改变账户的计费或报表的内容。节点的图表和它的累计总量来自同一批样本,所以两者不会不一致。

节点倍率 ​

节点的 流量倍率 按比例调整其用户被计费的流量。倍率为 2 时,经过该节点的 1 GB 会从用户额度和其代理商配额中扣除 2 GB。节点自己的数据和它的周期限制仍按原始字节计算。

隧道与端点 ​

  • 经过隧道的流量在用户连接的中继节点上计费。在源节点上不会再次计费。
  • WireGuard 或 OpenVPN 端点在端点名下分别统计对等端发送的流量和它转发的流量,面板把两者相加。

在线 ​

账户在最近 90 秒内有流量即为在线。每个节点的在线数,是同一时间窗口内有流量经过该节点的账户数。关闭图表序列后,按节点的在线数无从得知,显示为一条短横线而不是零。

额度与到期 ​

面板每分钟根据流量额度、到期日期,以及(对代理商的客户而言)代理商的配额和到期时间,判断每个账户。

  • 超出限制的账户会被停用,在它所在的每个节点上实时生效,无需重启任何东西,面板会发出一个说明原因的事件。
  • 回到限制范围内的账户(已续期、增加了流量、已重置)会被同一项检查重新启用。
  • 被人工停用的账户保持停用。 每分钟的检查从不重新启用由你或批量操作手动停用的账户,即使它在限制范围内。

从首次使用开始计算的时长 ​

套餐可以是一段时长(例如 30 天),而不是一个日期。这时账户在等待第一次连接,到期时间尚不执行。节点上报它的流量后的第一分钟,到期时间被设为那一刻加上时长。获取订阅不会开始计时:那只说明某个应用读取了链接,而不说明有人连接了。

重置周期 ​

周期会把账户的流量清零并重新开始。

周期重置时间
滚动距上次重置每隔若干天
每周、每月、每年在设定的星期几、每月某日或某个日期,使用公历或波斯历

每一步都从锚点开始计算,而不是从上次重置开始,所以锚定在 31 日的账户在 2 月的 28 日重置,3 月又回到 31 日。与其他一切一样,重置在每分钟的检查中执行。

达到限制前的警告 ​

同一轮每分钟的检查会在账户仍可使用时发出一次警告:

  • 用量超过额度的一定比例(默认 80%)时发出 user.quota_warning;
  • 到期时间进入到期日前的某个窗口(默认 7 天和 1 天)时发出 user.expiring。

每个阈值的警告只发出一次,并记录在数据库中,所以重启面板不会重复发送。售出更多流量或续期后会重新启用警告。Telegram、电子邮件和插件可以把警告转达给客户;参见 事件总线。

地址数限制 ​

地址数限制 限定一个账户在整个节点群中同时可以从多少个源地址连接。

  1. 节点自行接纳新地址:只要它所看到的该账户地址数低于限制,就无需针对每个连接询问面板。
  2. 每 10 秒,面板合并所有节点看到的地址,把每个受限账户裁剪到其限制(保留最近出现的),再把结果发回。
  3. 地址表到达节点后,来自超额地址的连接会被拒绝。

因此这 10 秒的一轮,就是账户可能在多个节点上短暂超出限制的窗口。IPv4 地址单独计数,IPv6 地址按其 /64 计数。地址在最后一次出现后继续计数十分钟,这样切换网络的手机不会把自己锁在外面。观察到的地址只保存在内存中;只有限制本身被存储。面板显示账户当前的地址时,读取的是同一份合并视图,读取它永远不会改变节点群执行的内容。

速度限制 ​

速度限制 以 Mbps 为单位限定账户每个方向的流量,并且在每个节点上分别生效:20 Mbps 的限制允许账户在同时连接的每个节点上都使用 20 Mbps。一台机器数据路径内的速率预算无法在多台机器之间共享。修改限制永远不会让它成倍增加;取消后又恢复的限制也会作用于已经打开的连接。

设备数限制 ​

设备数限制 是对下发的限制,而不是对连接的限制。节点看到的是地址,从来看不到设备。只有当获取订阅的应用发送了设备 id 时(有几个应用会这样做),面板才能看到设备。

  • 超出限制的设备会被拒绝获取订阅和页面。
  • 已经持有配置的设备会继续连接,直到你在账户上释放它的位置。
  • 不发送设备 id 的应用照常获得服务,除非开启了 设备限制拒绝无设备标识的客户端。

地址数限制是防共享中的并发部分,设备数限制是分发部分。两者应配合使用。

节点自己的限制 ​

节点可以有每周、每月或每年的周期流量限制。当它在本周期内的原始流量超过限制时,面板会停用该节点直到下一个周期,届时再重新启用,除非是你自己停用了它。

代理商的配额 ​

代理商的配额是计算出来的,从不存储:自其周期开始以来,它拥有的所有账户的流量,按每个节点的倍率换算。

  • 超出配额或过了到期时间时,它的所有账户都会被每分钟的检查停用;周期滚动或代理商续期后,这些账户会恢复。
  • 已到期的代理商无法登录面板,其 API 令牌也会失效,直到续期为止。

参见 代理商。

文字与图片采用 CC BY 4.0 许可。