November 2, 2026 · Advanced · About 9 min read

Shadowrocket Data Usage: Server and App Statistics Explained

Learn what Shadowrocket’s Data stats show by server and app, when counters reset, and how to use traffic changes to check whether routing rules work as expected.

At a glance

Data shows traffic recorded by the client, not your provider’s usage bill. First distinguish cumulative usage from current speed, then check outbound traffic by server and its source by app. Finally, compare changes over the same time window with connection logs to verify routing. This guide is for users who have imported a subscription and want to understand differences in the stats or check routing results. App attribution and reset options vary by platform; refer to the current interface.

Understand usage, speed, and provider-reported traffic

Start with the units shown in Shadowrocket’s Data view. B, KB, MB, and GB indicate cumulative data usage; B/s, KB/s, and MB/s indicate data transferred per unit of time. When a download stops, the speed drops while the cumulative total remains—that’s normal. A total of 20 MB is not a current download speed.

2 views
By server: outbound destination; by app: traffic source
2 directions
Upload and Download, from the client’s perspective
4 rule types
DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINAL

Upload is data sent from your device; Download is data received. Loading a web page also generates Upload because requests, sign-in state, and acknowledgments are sent. Uploading a file also involves Download, as the server sends responses back. If the interface shows Total, first check whether it means the combined traffic for that row or a summary for the current view, so you don’t add a parent total and its items twice.

Your provider measures traffic at the other end, potentially using a different billing period, multiplier, and method for counting protocol overhead. Client stats, system cellular usage, and your provider’s dashboard are not measured on the same scale. Any remaining data shown in a subscription response is also separate from the local stats in Data. Get your subscription link from your provider, and check your plan balance and billing period with them as well.

For example, a file labeled 100 MB won’t necessarily increase the totals in Data, system settings, and your provider’s dashboard by exactly 100 MB. Protocol overhead, caching, retries, and measurement boundaries all affect the result; MB and MiB may also be calculated differently. Align the time window and units before comparing differences.

By server: see which outbound connection carried the traffic

In the server view, focus on how much a server’s stats changed during the test, not its historical total or ranking. The server selected on Home may not immediately match the one used by existing connections. Reused connections or an unfinished download may continue using the original server. After switching servers, make a new request before checking the stats.

What to checkWhat it meansHow to verify
Server nameThe server entry associated with traffic recorded by the clientCompare it with the entry on Home; don’t identify it by a similar name alone
Upload / DownloadCumulative usage or speed for that entry and direction, depending on the unitRecord the starting and ending values; don’t compare historical totals
DirectIf shown in this view, traffic recorded as directCheck Global Routing and connection logs to identify its source
The entry hasn’t changedThe test traffic may have used another outbound route, or no new connection may have been madeCheck caching, connection reuse, stats refresh, and the policy actually matched

The server list is not a complete record of all network activity. Whether direct traffic appears separately and whether historical entries remain depends on the current interface and stats scope. Even if the selected server’s total hasn’t changed, that alone doesn’t mean the device is offline. The request may have used Direct, a server selected by another policy, or a route outside the current stats scope.

  1. On Home, confirm the current server and note its starting Upload and Download values in Data.
  2. Pause other high-traffic tasks, then make a new network request from one app.
  3. Wait for the request to finish, return to Data, and record the ending values in the same units.
  4. Subtract the starting values from the ending values to get the increase, then compare it with connection logs for the same period.

By app: identify the source without treating missing entries as zero

The app view answers “where did the traffic come from?”; the server view answers “which outbound route did it use?” These views may describe the same traffic, so don’t add them together to calculate total device usage. One app can access multiple domains that match Direct and proxy policies, while one server can carry connections from multiple apps.

App request Traffic capture Rule match Outbound connection Stats attribution

How clearly traffic can be attributed to an app depends on platform permissions and how traffic is captured. On iPhone and iPad in particular, don’t assume the system provides the client with complete per-app identity information. If the current interface has no app view, or some connections appear without a clear app attribution, continue troubleshooting with server changes and connection logs. There’s no need to look for a setting that isn’t available in the current interface.

When do stats reset? Check the counter’s scope first

There’s no single answer to “Does disconnecting reset the stats?” The current session duration or speed is not the same as the cumulative total saved in Data. Disconnecting ends the current session, but doesn’t necessarily clear all historical stats. Returning to Home, changing Global Routing, or updating a subscription shouldn’t be treated as a general reset either.

Action or timeHow to interpret itWhat to record
Turn off the connectionThe current session ends; cumulative saved stats may remainRecord the same entry before and after disconnecting
Quit and reopen the appReloading the interface doesn’t necessarily clear saved statsCompare values and stats scope before and after reopening
Midnight or your plan’s billing dateUnless a reporting period is clearly specified, don’t assume local stats reset automaticallyCheck whether the interface specifies a date range
Clear statsFollow the confirmation prompt in the current interface; it may apply only to a specific scopeSave any values you need first, then verify what was cleared

If you need a fresh count, first check whether Data on your platform offers an option to clear or reset stats. Read the confirmation prompt before proceeding. Don’t rely on button locations from another platform, and don’t delete servers, subscriptions, or app data just to reset the count. If there’s no clear reset option, subtract the starting value from the ending value to get a reliable test window.

Bottom line: compare changes instead of relying on a reset

For each test, record the start and end times, server name, and both sets of readings. This separates the traffic for that test even when historical stats remain. Resetting only changes your baseline; it doesn’t reset your provider’s bill or plan balance.

Check Config rules with Data: control variables before checking matches

To test rules in a configuration file, select Config under Home → Global Routing, then confirm the active file in Config. Proxy and Direct can be used for a temporary comparison, but their results don’t prove that a rule in the configuration file matched. If you use Scene, confirm which routing settings the active scene applies so you don’t mistake a scene change for a rule failure.

Record the state before testing

Global Routing
Config
Configuration file
Confirm the selected file in Config
Server
Note the current selection on Home
Automatic connection
Settings → On Demand

Check whether On Demand conditions could change the connection state, and keep the network environment consistent throughout the test.

Rule syntax example

DOMAIN-SUFFIX
example.com,PROXY
IP-CIDR
192.0.2.0/24,DIRECT,no-resolve
GEOIP
CN,DIRECT
FINAL
PROXY

The example domains and network ranges explain the syntax; they aren’t targets for real connectivity tests. Put FINAL last.

Here’s an example set of rules to illustrate their order. DOMAIN-SUFFIX matches a domain and its subdomains; IP-CIDR matches a destination IP range, and no-resolve means the rule won’t trigger a DNS lookup just to check for a match. GEOIP classifies traffic based on the destination IP’s geographic database entry. FINAL handles requests that haven’t matched any earlier rule. Rules are evaluated from top to bottom, so an earlier rule can change the final result.

DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

For a real test, use a target you know is reachable and covered by your existing rules. There’s no need to paste the examples into your everyday configuration. Record the starting values in Data, then open the target and check the connection log for its domain or IP, matched rule, and final policy. HTTPS commonly uses destination port 443, but the port alone doesn’t prove that a request used a proxy. Check the actual match and outbound route.

  1. Set a baseline: Confirm the connection is on, pause background downloads, and record the server and app stats.
  2. Make a new request: Don’t just refresh a page served entirely from cache. If you switch test resources, keep the target policy consistent.
  3. Check the connection: Find the matching time and target first, then check the rule and outbound route—not just the server total.
  4. Compare the change: Wait for the stats to refresh, then calculate the difference. If the result doesn’t match expectations, check rule order and existing connection reuse first.
  5. Restore your settings: If you temporarily switched to Proxy or Direct for comparison, restore your original Config settings when the test is done.

Bottom line: traffic growth is supporting evidence; connection matches pinpoint the cause

If a server’s Download total rises from 12 MB to 17 MB, that only shows the entry gained about 5 MB. It doesn’t prove that a particular domain matched DOMAIN-SUFFIX. Identify the relevant connection first, then use the change in Data to confirm that traffic continued to flow through it.

Common stats questions and how to troubleshoot them

Why is Upload increasing when I’m not downloading anything?

Pause cloud sync, file uploads, and other background tasks. Record the change over one minute, then check connections from that period. Web requests, keepalive traffic, and acknowledgments also generate Upload. An increase alone doesn’t mean a file is being uploaded.

Why is the old server still showing traffic after I switch servers?

Let existing downloads finish, then start a new connection and check its outbound route. Old connections may still be transferring data, or a policy may select a different server. Don’t delete the old entry to test this; identify the relevant request by its connection time and destination.

What if the app I just opened doesn’t appear in the app stats?

First check whether your platform provides app attribution, then make sure you aren’t just seeing cached data. Make a new request and compare server stats with connection logs. Leave unattributed traffic marked as unknown rather than guessing which app it belongs to.

Data and my provider’s dashboard show very different totals. Should I change my rules?

First align the start time, end time, and units, then ask your provider to confirm the billing period and measurement method. Rules determine how requests are routed; they don’t make the two sets of stats match. Check Config only if connection logs show that the outbound route differs from what you expected.

Why won’t a web page load even though Data shows traffic?

The increase may come from another app, a handshake before a failure, or repeated requests. First check whether the connection to the target succeeded, then check DNS, the matched rule, and outbound status. For more detailed troubleshooting, follow the steps one by one; total traffic growth is not proof of connectivity.

To keep troubleshooting notes, record the device platform, Global Routing mode, configuration file, server name, test target, and time window. Before sharing logs, remove subscription links, authentication details, and personal browsing information. For help checking connections or importing a subscription, see Troubleshooting and Getting Started.

Download Shadowrocket