EasyXrayEasyXray

Clients

Manage EasyXray clients — credentials, traffic and expiry limits, IP limits, groups, bulk actions, external links, and online status.

A client is a single user, identified by a unique email. In the current panel, clients are first-class records that can be attached to multiple inbounds at once, with per-client traffic accounting.

Client fields

FieldApplies toMeaning
EmailallUnique identifier used for accounting and lookups.
ID (UUID)VLESS, VMess, TUICThe client credential.
PasswordTrojan, Shadowsocks, TUICThe client credential.
AuthHysteria2The client credential.
FlowVLESSXTLS flow, e.g. xtls-rprx-vision.
Limit IPall (except TUIC)Max simultaneous source IPs (enforced via Fail2ban).
Total (GB)allTraffic quota; the client is disabled when exhausted.
ExpiryallDate after which the client stops working.
Auto renewalallDisabled, fixed interval in days, calendar weekly, or calendar monthly.
Telegram IDallLinks the client to a Telegram user for self-service/notifications.
Sub IDallSubscription identifier grouping this client's links.
GroupallOptional client group for organization and bulk filtering.
CommentallFree-text note.

Reaching the traffic or expiry limit disables the client, and a client disabled or deleted by hand counts too; the panel restarts Xray then (restartXrayOnClientDisable, on by default).

Limits and IP control

  • Traffic / expiry caps disable the client when hit; a Reset period auto-renews the quota.
  • Limit IP caps simultaneous source IPs. Enforcement relies on Fail2ban — see Security. You can view a client's recent IPs and clear them from the client's actions.
  • Online status and last-online times are tracked per client (and per node in multi-node setups).

Automatic renewal

The individual and bulk-create forms offer one renewal mode at a time:

In the individual form, the mode, its day/weekday setting, and the renewal limit share a row on desktop and stack on mobile. Help and the read-only preview use the full width below them. The bulk-create form keeps its stacked fields. Help follows the selected mode; the day-1/month-end note appears only for monthly renewal. Independent traffic-reset settings remain separate.

ModeAPI fieldsSchedule
Disabledreset=0, resetDay=0, resetWeekday=0The expiry is not renewed.
Fixed intervalreset=N, other two fields 0Add exactly N × 24 hours to the previous cutoff.
Calendar weeklyresetWeekday=1..7, other two fields 0Renew at panel-local midnight on Monday (1) through Sunday (7).
Calendar monthlyresetDay=1..31, resetWeekday=0Renew at panel-local midnight on that day; missing dates clamp to the month's last day without losing the configured day.

Calendar weeks stay on the selected weekday across daylight-saving changes; they are not equivalent to a fixed seven-day interval. A skipped midnight uses the first valid instant of that date; a repeated midnight uses the first one. If a timezone skips the entire selected date, the next matching week is used. Existing monthly clients that also have reset set retain monthly precedence. The API rejects weekly renewal combined with a positive reset or resetDay.

For a full calendar month, select monthly, day 1 and set the initial cutoff to the next month's first midnight. For example, 2030-09-01 00:00:00 is valid through 2030-08-31 23:59:59. Day 31 renews at the start of the 31st and is not the same schedule. The existing optional month-end subscription-header display remains a separate setting and is not enabled by this form.

The preview uses the panel's timezone and the same calendar/catch-up calculation as automatic renewal. It shows the cutoff, last valid second, next expiry, and allowances needed. It is informational: it does not save, activate, reserve, or guarantee a future renewal. When no expiry is set, auto-renewal cannot run; an explicit button can set the first calendar cutoff. Selecting a mode alone never rewrites an existing expiry. First-use clients keep their initial duration, and their calendar dates are available after activation.

Preview dates use the Gregorian format YYYY-MM-DD HH:mm:ss UTC±HH:mm, preserving any fractional seconds in the cutoff. Each date includes its own UTC offset, so a daylight-saving change can show different offsets before and after renewal. The heading identifies the panel time zone; Server local time means the server's Local setting, not the browser's time zone. For example, 2026-09-27 05:00:00 UTC+00:00 is 13:00 in UTC+08:00. Estimated renewals used is the allowance this preview would consume, including any catch-up periods, not a count of renewals already performed. The first-cutoff button uses the same date format; clicking it still requires saving the form to persist the change.

For legacy last-second calendar cutoffs, the renewal boundary includes the existing free alignment to the following midnight. The last-valid-second preview still uses the stored expiry, not that alignment: an exclusive 23:59:59 cutoff is valid through 23:59:58. Use a next-midnight cutoff for full-day validity; the preview itself does not repair the initial expiry.

resetMax=0 means unlimited renewals. A positive limit counts each elapsed period, including offline catch-up, not each scheduler tick or attached inbound. If the remaining allowances cannot reach a future cutoff, the client stays expired and its traffic is not reset. Operator-disabled clients stay disabled.

Renewal already resets client traffic. The separate periodic traffic reset does not move the expiry and is unchanged; keep it disabled unless you intend an additional reset. Quarterly, yearly, and every-N-week/month schedules are not part of these modes.

Upgrade the main panel and every participating node before enabling weekly renewal. Older versions ignore resetWeekday; a weekly-only client would not auto-renew and, after its expiry or quota is exhausted, can be deleted by delete depleted clients because older versions lack the weekly protection. Back up the database and convert weekly schedules to a renewal mode supported by every participating version before downgrading. Merely disabling weekly renewal does not protect a depleted client from deletion. Avoid depleted-client cleanup while a mixed-version fleet or unconverted weekly clients remain. Database upgrades default this new field to 0 and preserve existing limits and dates.

Every client has share links and a QR code for its inbounds, plus a combined subscription. You can also attach external links to a client — extra vless://, vmess://, trojan://, ss://, hysteria2://, or wireguard:// links, or a remote subscription URL — so they appear alongside the panel-generated ones in the client's subscription.

To inspect exactly what a link contains, paste it into the share-link inspector.

Bulk actions

For managing many clients at once, the panel supports bulk create, enable, disable, delete, attach/detach (to inbounds), reset traffic, and adjust (add days / add bytes / set flow). Maintenance actions also let you delete depleted clients (quota/expiry exhausted) and orphaned clients (not attached to any inbound).

A client's share link contains its credential. Treat links and QR codes like passwords, and rotate the credential if one leaks.

On this page