Tutorial ~15 min read

Stash on iOS: Import Subscriptions and Set Up Split Routing (2026)

Stash is one of the most capable Clash-family clients for iPhone and iPad: it speaks the same policy language as desktop Meta (Mihomo) configs, supports remote rule providers, and wraps everything in an iOS-native experience with VPN permissions through Apple’s Network Extension framework. This guide walks you from a clean install to a working split routing setup—domestic sites on DIRECT, everything else through your airport subscription—without treating the phone like a miniature PC.

Clash Editorial Team iOS · Stash · Subscription · Rule Provider · Clash Meta

Why Stash Instead of a Generic VPN App?

Most consumer VPN apps give you a single tunnel and a coarse on/off switch. Stash inherits the Clash model: outbound nodes live in proxy groups, and a rules section decides whether each connection uses DIRECT, a named group, or a fallback chain. That matters on mobile networks where you still want local CDNs, banking apps, and campus portals to hit domestic paths while overseas services ride a stable outbound.

On Android, many readers already use FlClash with similar YAML; on iOS, Stash is a practical counterpart when you need the same vocabulary—rule-providers, GEOIP, and provider-maintained lists—without relearning a different policy engine. If your subscription is not yet Clash-shaped, convert it first with our Subconverter complete guide, then return here to load the result.

What You Need Before You Start

You should be on a recent iOS release with working date and time (TLS validation breaks when the clock drifts). Obtain a trusted HTTPS subscription URL or a hosted config.yaml from your provider. Keep that URL private—treat it like a password because it often embeds authentication tokens.

  • Apple ID in a region where Stash is available on the App Store (availability varies; check your local storefront).
  • Enough storage for cached rule lists; large remote rulesets can consume tens of megabytes after decompression.
  • Willingness to approve VPN prompts—iOS will not let any client capture traffic silently.

Compliance: Respect school, workplace, and local regulations. This article explains technical configuration only; you are responsible for lawful use of network tools.

1Install Stash From a Trusted Source

Prefer installing Stash from Apple’s App Store or the official listing linked from this site’s download page, where we aggregate vetted clients including Stash with an App Store button. Avoid sideloaded or repackaged IPAs from random forums: they complicate updates, break signature trust, and are a common path for stale cores or injected trackers.

After installation, launch the app once without expectations. You may see onboarding screens that explain profiles and modes—skim them, because the concepts map directly to standard Clash terminology. If the app offers a sample profile, you can keep it for UI exploration, but production use should start from your provider’s YAML or subscription.

2Grant VPN / Network Extension Permission

Stash routes traffic through Apple’s Network Extension APIs. The first time you enable the tunnel, iOS shows a system dialog asking you to allow VPN configuration—tap Allow. If you tapped Don’t Allow earlier, open Settings → General → VPN & Device Management (wording may vary by iOS version), remove stale VPN profiles, and relaunch Stash to trigger the prompt again.

On battery-conscious devices, also check that Low Power Mode and aggressive background restrictions are not killing the extension immediately after screen lock. Some OEM-specific “smart power” features are less common on iPhone than on Android, but third-party MDM profiles can still block personal VPNs—corporate devices may need IT approval.

3Import Your Subscription or Remote Profile

Inside Stash, navigate to the area that manages profiles (exact labels differ slightly by version, but the workflow is consistent). Choose import from URL, paste your subscription link, assign a readable name such as “Home-5G” or “Office-Wi-Fi-test,” and confirm. Trigger a manual update so the client downloads the YAML immediately.

A healthy import shows node lists populated under Proxies and timestamps or version markers on the profile. If fetching fails, read the error literally: HTTP 403 often means an expired token; TLS errors may indicate captive portals, HTTPS inspection on public Wi‑Fi, or incorrect device time; timeouts suggest packet loss or firewall blocks. As a quick isolation step, open the same URL in Safari—if Safari cannot load it, fix network basics before blaming Stash.

4Pick Rule Mode for Split Routing

Stash exposes the familiar trio: Rule, Global, and Direct. For everyday split routing, stay on Rule so the engine evaluates your rules top to bottom and sends matching traffic to DIRECT or the appropriate proxy group. Global forces everything through a single outbound—useful for five-minute diagnostics, expensive for daily use because it bypasses domestic optimizations. Direct disables upstream proxies entirely, which is helpful when you need to confirm baseline ISP connectivity.

If you toggle modes and nothing changes, you are often looking at a profile that overrides mode per app or a stale cached policy. Switch profiles, force-quit Stash, relaunch, and verify which profile is marked active—only one should win.

Rule Providers: Where Split Routing Actually Lives

Short configs sometimes embed every RULE-SET inline, but real-world maintenance leans on rule providers: remote URLs that download text lists (often in Clash-compatible formats) and attach tags you reference inside rules. A typical pattern loads a provider named CN for China-direct lists, another for advertising domains, and a catch-all GEOIP,CN,DIRECT near the bottom—order matters because the first match wins.

In Stash, after your profile loads, inspect whether rule providers show as fetched and up to date. If a provider never refreshes, split routing silently degrades: you might proxy domestic CDNs by mistake or send international SaaS traffic direct. Manual refresh buttons and auto-update intervals (if exposed in settings) should align with how rapidly your airport rotates endpoints.

Choosing between large community lists is a policy decision, not a benchmark sport. Our ACL4SSR vs Loyalsoldier comparison explains tradeoffs—China-centric splits versus broader GEOIP coverage—before you paste remote URLs into production profiles.

Proxy Groups and Manual Overrides on iOS

Most subscriptions ship with nested proxy groups: manual selection, URL-test auto pick, fallback chains, and load-balance variants. On iPhone you will spend time in the Proxies screen tapping nodes and running latency tests. Remember that Wi‑Fi versus cellular paths differ—run tests on the network you actually use, and accept that QUIC-heavy services may look “slow” in ICMP-style tests even when real page loads are fine.

For apps that misbehave under policy routing, resist the urge to jump to Global mode permanently. Instead, identify the domain from Stash’s connection log (if available) and upstream a narrowly scoped rule to your provider or a self-hosted patch profile. That keeps the rest of your split intact.

DNS Alignment on iOS (Why Split Rules “Lie”)

Routing decisions depend on names being resolved consistently with your policy. If iOS resolves a hostname to an unexpected IP—because of split-brain DNS, encrypted DNS outside Stash, or a poisoned hotspot—you will see “rules not working” when the underlying issue is resolution. When you graduate from defaults, read Ultimate Meta Core DNS Leak Prevention for FakeIP, DoH, and nameserver-policy patterns that still apply conceptually to Meta-class cores on mobile.

Until then, keep the debugging loop simple: confirm Stash is active, confirm Rule mode, confirm providers refreshed, then look at whether the problematic app uses its own certificate pinning or hard-coded DNS—those cases may need per-app exceptions or provider-side rules rather than more aggressive Global toggles.

Platform Parity: Android FlClash vs iOS Stash

If you already configured FlClash on Android, you can reuse the same mental model: profiles, groups, rules, providers. Android exposes filesystem access and background behavior differently; iOS is stricter about background execution and VPN slot contention. Our FlClash Android complete guide pairs with this article so a household can standardize on Meta-style YAML while picking the right shell per platform.

Verification Checklist

  1. Profile update succeeds without HTTP errors; node count matches provider expectations.
  2. Rule providers show recent refresh times, not perpetual “pending.”
  3. Rule mode is active; domestic sites that should be direct load without unnecessary proxy hops (spot-check with provider docs).
  4. Switching nodes in key groups changes egress IP for international test pages.
  5. Disabling Stash restores plain ISP behavior—proving you can roll back cleanly.

Troubleshooting Common iOS Issues

“Connected” but apps fail: check whether the active group points to dead nodes, whether QUIC is blocked on your network, or whether the app uses a pinned stack that ignores system VPN until restarted.

Intermittent drops on lock screen: review background refresh, disable conflicting VPN profiles, and test on cellular versus Wi‑Fi to isolate AP issues.

Rules feel ignored: confirm you are not in Global/Direct accidentally, confirm provider URLs are reachable from Safari, and confirm there is no higher-priority corporate MDM profile blocking tunnels.

Source Code, Updates, and Trust

Stash evolves with Apple’s platform constraints; follow the developer’s release notes for iOS compatibility. For transparency about the broader ecosystem, upstream Clash Meta and related projects publish source on GitHub—useful for auditing behavior and reporting issues. That is separate from obtaining the iOS client: keep App Store updates as your primary upgrade path, and use GitHub when you need technical context rather than a packaged IPA.

Summary

A solid Stash setup on iOS is less about memorizing every YAML keyword and more about disciplined steps: trusted install, VPN permission, clean subscription import, refreshed rule providers, and sustained Rule mode for split routing. Get those right and your iPhone behaves like a first-class member of the Clash Meta family—predictable domestic paths, intentional proxy use, and room to grow into advanced DNS tuning when you need it.

Download Clash for free and experience the difference

Stash iOS

Clash.Meta–compatible client for iPhone and iPad: visual profiles, subscription imports, rule providers, and split routing policies aligned with the rest of the ecosystem.

App Store distribution

Install from Apple’s storefront or the link on our download hub

Subscription-first workflow

Import remote YAML, refresh providers, pick proxy groups

Split routing ready

Rule mode with DIRECT vs policy groups

Pair with deep dives

DNS guide and ruleset comparison on this blog

Previous & Next

Related Reading

Stash on iPhone

Import your Clash subscription, refresh rule providers, and stay in Rule mode for clean split routing—start from our download page.

Download Free Client