Skip to content

Dynamic rate

This page (Nodes Manager → Other ActionDynamic Rate) lets you define named, time-based traffic multiplier profiles and assign one to a node from the Dynamic Rate Case dropdown on its edit page. When a node has a case selected, the multiplier used to record its traffic changes automatically depending on the time of day, instead of staying fixed at the node's static Traffic Rate.

Unlike Route/Outbound/DNS/Inbound/domain/protocol cases, dynamic rate is resolved centrally by V2RaySocks whenever a backend submits usage data, so it applies uniformly on all backends (XrayR, v2node, soga, unified) and takes effect on the next usage submission — no node restart needed.

Format

dynamic_rate_json is a single JSON object keyed by case ID (not an array of {id, ...} items like the Additional Node Config cases). Each value has a name and a rule map of time range → multiplier:

json
{
  "1": {
    "name": "Daytime 1x, nighttime 0.5x",
    "rule": { "8:00-20:00": 1, "other": 0.5 }
  },
  "2": {
    "name": "Daytime 100x, nighttime 4x",
    "rule": { "8:00-20:00": 100, "21:01-23:00": 20, "other": 4 }
  }
}
  • Time is evaluated against the timezone configured in PHP, 24-hour format.
  • Minutes must be two digits (e.g. 1:01, 18:43 — not 1:1).
  • Time ranges must not overlap.
  • other is the multiplier used when the current time doesn't fall in any explicit range.
  • Both range boundaries are inclusive.

How to use it

  1. Open Dynamic Rate and fill in dynamic_rate_json with one or more named cases, keyed by ID.
  2. Save.
  3. On the node's edit page, pick the case from the Dynamic Rate Case dropdown (next to the static Traffic Rate field) and save the node.

Fallback behavior

The node's static Traffic Rate (default 1) is used whenever dynamic rate doesn't resolve to a value:

  • Dynamic Rate Case left empty on the node — Traffic Rate is used directly.
  • The selected case ID doesn't exist in dynamic_rate_json, or that case has no rule — Traffic Rate is used.
  • The current time doesn't match any range in rule and there's no other key — Traffic Rate is used.

So selecting a Dynamic Rate Case effectively overrides Traffic Rate only for the time windows it actually covers.