Clients
A client is an app on the user's device. It receives a subscription link and builds the config from it itself: it picks local ports, DNS, and the operating mode. That is why one subscription fits both a phone and a computer.
The main requirement is support for the protocol from your Xray configuration. For VLESS+Reality you need a client on Xray-core or a Meta core; for VLESS+WS+TLS, almost any will do.
Client listâ
| Client | Platforms | Core | Official repository |
|---|---|---|---|
| Happ | Android, iOS, macOS, Windows | Xray | happ.su (closed source) |
| v2rayNG | Android | Xray | 2dust/v2rayNG |
| Streisand | iOS | Xray | App Store (closed source) |
| sing-box | Android, iOS, macOS, Windows, Linux | sing-box | SagerNet/sing-box |
| mihomo (Clash Meta) | core, cross-platform | mihomo | MetaCubeX/mihomo |
| Clash Meta for Android | Android | mihomo | MetaCubeX/ClashMetaForAndroid |
| Stash | iOS, macOS | mihomo (Clash) | stash.ws (closed source) |
| Foxray | iOS | Xray | App Store (closed source) |
| FlClash | Android, Windows, macOS, Linux | mihomo | chen08209/FlClash |
| Clash Verge Rev | Windows, macOS, Linux | mihomo | clash-verge-rev/clash-verge-rev |
| Karing | Android, iOS, Windows, macOS | sing-box | KaringX/karing |
| NekoBox for Android | Android | sing-box | MatsuriDayo/NekoBoxForAndroid |
| v2rayN | Windows | Xray | 2dust/v2rayN |
| NekoRay | Windows, Linux | Xray, sing-box | MatsuriDayo/nekoray |
For open-source clients, the link goes to the official repository; for closed ones (Happ, Streisand, Stash, Foxray), it goes to the official website or app store. Download builds only from there: third-party mirrors often contain extra code.
How to import a subscription linkâ
- Copy the subscription link. It is issued by the panel or the
subscription page â it is an address of the form
https://panel.example.com/api/sub/<shortUuid>. - Open the client and add the subscription:
- v2rayNG â "+" â "Import from clipboard", or the "Subscriptions" section â add a URL.
- sing-box / Karing â "Profiles" â create â "Remote" â paste the URL.
- mihomo, Clash Meta for Android, Clash Verge Rev â "Profiles" â new â "Import from URL".
- Stash â "Configurations" â import by link.
- Happ, Streisand, Foxray â import a link or subscription on the main screen.
- Update the subscription inside the client. The values come from the server; you do not need to enter the address, port, and UUID manually.
A subscription link contains a user identifier. Do not forward it in public chats and do not publish it: whoever receives the link uses your access.
Subscription formatâ
Xray-core clients (v2rayNG, Streisand, Happ, Foxray) understand base64 with a
list of links. Clients of the Clash/mihomo/Stash family request YAML â the
subscription server determines the required format itself from the User-Agent
header.
Do not serve a single shared JSON config to all clients: it hard-codes the local ports and DNS of a specific app. A subscription link is universal. A ready-made YAML template is covered in mihomo Subscription Template.
What's nextâ
- Quick Start â bring up the panel and a node.
- Subscription Page â how to issue keys to a user.
- mihomo Subscription Template â YAML for the Clash family.