← Back to library
Clients Practice

Streisand on iOS: Setup

Streisand is a tidy free client for iOS that I give to those who care about "Apple-style" nativeness and lightness. It handles xray-json with all the routing rules, so RF bypass arrives together with the subscription. Below is installation and setup. Substitute the subscription link into the builder above.

This material is about engineering your own infrastructure and is educational in nature. You are responsible for complying with the laws of your own jurisdiction.

When Streisand, and when Happ

Happ is more universal and understands panel hints (human-readable labels, an encrypted subscription). But if the client is a devotee of "pure iOS," wants a light native app without extras, and doesn't need nice tile labels, Streisand is an excellent choice. It's free, light, and on a core that correctly applies routing rules from the subscription.

One downside: Streisand is a plain, not an "extended," client. It won't show your labels via Server Description — it'll leave the technical string. For an audience that doesn't care about this, it's not a problem.

Installation

App Store, the "Streisand" app. iOS/iPadOS only, there's no desktop version — for mac take Hiddify or Streisand on an iPad.

Subscription import

  1. Copy the subscription link from the bot (of the form https://sub.your-domain.com/xxxxxxxx).
  2. In Streisand tap in the top-right corner → Add from clipboard or Import by link / from QR.
  3. The profile appears with a list of servers. Pick a server or auto-select → the connect toggle at the top.

On the first connection iOS will ask to allow adding a VPN configuration — this is a system dialog, tap "Allow" and confirm with Face ID / passcode. Without this iOS won't let the tunnel come up — worth warning the client so they don't get scared.

Bypass for Russia

The key advantage of Streisand for an RF audience: it runs on xray-json and applies routing rules straight from the subscription. If you set split routing in the template on the panel (RF → direct, the rest → through the node), the client has nothing to configure at all — the rules arrive with the import.

Verification: open 2ip.ru through the tunnel — it shows the client's home IP; a blocked resource opens through the node; the bank — without "VPN detected."

DNS and updating

  • Connects slowly — in Streisand's settings change DNS to Google (https://8.8.8.8/dns-query) or Quad9 (https://9.9.9.9/dns-query). Cloudflare 1.1.1.1 is slow in RF.
  • The server changed on your side — pull the profile to refresh or tap "Update subscription," and fresh servers get pulled in.

Kill-switch on iOS

There's no separate "block without VPN" toggle, as on Android — this is a system limitation. But Streisand reconnects automatically on a drop, and for the paranoid there's the system option "Connect On Demand" in the iOS VPN profile: Settings → VPN → (i) next to the profile → Connect On Demand — then iOS will keep the tunnel up.

Bottom line

Streisand is a light native option for iOS that applies your routing from the subscription itself and requires a minimum from the client: install it, paste the link, allow the VPN profile. For the desktop and advanced audience, see the next article — NekoBox / sing-box.

Next guide NekoBox / sing-box: For Desktop and Advanced Users → Article unclear or something off? Message me and I will help or fix it. @notrealvpn →
This material is educational and covers network-infrastructure engineering. You are responsible for complying with the laws of your jurisdiction.