Open-source licensing for the three clients
v2rayN, v2rayNG, and v2flyNG are all open-source clients, with graphical workflows designed for desktop or Android use. The v2rayN and v2rayNG projects use GPL-family licenses, while v2flyNG uses GPLv3. Refer to each project’s license text for the exact terms, third-party components, and distribution conditions. The V2Fly and Xray cores use the MPL 2.0 license. A client and a core are separate software packages, so the license for one does not automatically apply to every component.
Open source means code can be read, studied, and maintained under the applicable license; it doesn’t mean installers from every source are equivalent. Choose a client based on your platform, required protocols, and configuration compatibility. For desktop, start with v2rayN. On Android, use v2rayNG for Xray configurations; consider v2flyNG when you need V2Fly-specific behavior. The client doesn’t determine how a server is operated or tell you whether a subscription source is trustworthy.
Keep a reproducible setup before updating
Client interfaces, core capabilities, and rule resources may be updated separately. After an interface update, check which core is active. After updating rule files, confirm that custom tags still point to the right resources. Before updating, note the local port, system proxy mode, active configuration, and custom routes; if export is available, save a controlled backup. After updating, test a request that used to work, then restore advanced settings one at a time. This makes it easier to avoid conflating multiple changes with one failure.
Subscription updates and software updates are different. The first refreshes server configurations and may change addresses, protocols, or connection settings; the second changes the client or its components. A single configuration from a subscription usually can’t represent all routing preferences on a device, and local client rules aren’t automatically shared with other devices. When managing multiple devices, note which settings come from subscriptions and which are local to avoid confusion during migration.
JSON reference and protecting sensitive information
For more advanced configuration, start by reading the four sections inbounds, outbounds, routing, and dns. Limit inbound listeners to what you actually need, make sure outbound tags match routing references, and consider DNS behavior alongside your domain rules. The example geosite:cn rule requires the corresponding resource. Copying the rule without making the resource file available may prevent the configuration from starting as expected.
Full configurations, share links, and subscription URLs may contain credentials. When asking for help, include only the necessary fields, hide credentials and the full subscription path, and specify the client, active core, stage of failure, and relevant logs. Destination domains in logs can also reveal browsing activity, so share only the excerpts needed to troubleshoot. This makes problems easier to reproduce than a screenshot of a failed connection alone.
Continue to the V2Ray configuration reference →