Configure Shadowrocket Rules for Split Routing and Domain Blocking (2026)
Shadowrocket needs a suitable configuration to decide which traffic should use the proxy, connect directly, or be rejected. This guide imports a maintained rule configuration that sends listed local services directly, proxies listed external services, and blocks domains in its advertising and tracking lists.
Rules can reduce unnecessary detours and inconsistent exit locations. They do not guarantee that a social-media account will never be restricted, that every ad will disappear, or that a streaming platform will accept the chosen IP.
Prerequisites
First install and configure at least one working node with the Shadowrocket beginner guide.
The shared U.S. Apple ID page and Asspp guide explain two ways to access apps in another App Store region, with their security limitations.
What split-routing rules do
Without an appropriate configuration, Shadowrocket may send all supported requests through the selected node. That can:
- slow access to local sites by routing them through a distant server;
- make a service see an unexpected location when the user frequently switches nodes.
A rule configuration can assign:
- local traffic → direct connection;
- listed restricted external sites → proxy;
- listed advertising and tracking domains → reject.

Matching behavior
Shadowrocket checks its ordered rules from top to bottom:
youtube.com → proxyuses the selected proxy policy;taobao.com → directuses the original connection;- a request that matches no earlier rule follows the final
FINALpolicy.
Rule coverage and order both matter. A large public list can also contain false positives, so verify the matched rule when a site stops working.
Rule source used in this guide
The source article recommends Shadowrocket-ADBlock-Rules-Forever, maintained by Johnshall and based on earlier work by h2y. At the February 2026 source snapshot, the repository had approximately 22,200 GitHub stars.
The project describes:
| Feature | Description |
|---|---|
| Broad lists | Combines GFWList-style entries, common local sites, and advertising/tracking domains |
| Regular builds | The source article reports an automated daily 8 a.m. rebuild |
| Several profiles | Blacklist, whitelist, and combined “lazy” configurations |
| Domain blocking | Rejects matching advertising and tracking requests |
Repository: https://github.com/Johnshall/Shadowrocket-ADBlock-Rules-Forever
Import the rules in three steps
Before importing
Confirm that Shadowrocket is installed and at least one node works. Use the Shadowrocket guide or the proxy-service guide if needed.
Step 1: copy the configuration URL
The upstream project publishes several variants. The source guide uses its combined “lazy” configuration:
https://johnshall.github.io/Shadowrocket-ADBlock-Rules-Forever/lazy_group.confReview the upstream file and repository before importing it because a remote configuration can change after this article is published.
Step 2: import it into Shadowrocket
- Open Shadowrocket and select Config in the second bottom tab.
- Select + in the upper-right corner.
- Paste the URL.
- Select Download and wait for the file to appear.
Step 3: activate the configuration
Select the downloaded configuration until a check mark appears. Return to the home screen, disconnect, and reconnect so the new rules take effect.
The project also publishes a QR-code import page:
https://johnshall.github.io/Shadowrocket-ADBlock-Rules-Forever/
Enable updates
Domain lists change over time, but a regularly rebuilt upstream file is useful only when Shadowrocket refreshes its local copy.
Open Shadowrocket → Settings → Subscription and review:
- Update on Open: Checks for a new configuration when the app starts.
- Automatic Background Update: Lets iOS refresh in the background when the operating system permits it.
Background execution is controlled by iOS and is not guaranteed at an exact time. Check the last-updated date periodically.
What may change after configuration
The source article reports an example user's before-and-after experience:
| Item | Before | After |
|---|---|---|
| Local shopping and social sites | Often took 3–5 seconds to load | Opened as quickly as the direct connection |
| Monthly provider data | Approximately 20 GB | Approximately 10 GB |
| In-app ads | Many launch and feed ads | Most listed domains were blocked |
This is one anecdotal result, not a benchmark. Savings and blocking depend on the user's traffic, the lists, DNS behavior, and how apps deliver advertising.
Blacklist, whitelist, or combined profile?
| Variant | Default behavior | Typical use |
|---|---|---|
| Blacklist | Direct by default; listed restricted sites use the proxy | Mostly local browsing with occasional external access |
| Whitelist | Proxy by default; listed local sites connect directly | Mostly external services |
| Combined “lazy” profile | Split routing plus advertising lists and policy groups | A convenient beginner starting point |
The source guide recommends the combined profile for beginners. Advanced users can add more specific custom rules when a niche site is not handled correctly.
Four additional practices
1. Avoid leaving Global Mode enabled
Global Mode can send local messaging, payment, banking, and video traffic through a distant node, reducing performance and creating an unexpected location. Use the rule configuration for regular traffic and switch to Global only when troubleshooting.
2. Avoid unnecessary node changes
Changing among several countries in a short period gives remote services a rapidly changing IP location. Choose a stable, suitable node and switch only when necessary. Node stability still depends on the provider; see the 2026 proxy-service guide.
3. Confirm that updates still work
Every week or two, open Config, select the active file, and inspect its last-updated time. If it is stale, update it manually and check whether the URL is still reachable.
4. Use new accounts normally
New social accounts can be subject to additional platform review. Rapid posting or bulk-following can trigger limits regardless of the proxy configuration. Routing rules are not a way to bypass a platform's usage policies.
Five-action quick version
- Copy the configuration URL.
- Open Shadowrocket and paste it under Config.
- Select Download.
- Activate the new configuration.
- Disconnect and reconnect.
Summary
Connecting a node is only the first step. A suitable Shadowrocket configuration determines which traffic is proxied, direct, or rejected.
Use the steps above as a starting point, then inspect the actual matched rule whenever a site behaves incorrectly. Treat third-party lists as changeable dependencies rather than permanent guarantees.