Clients, cores, and server providers play different roles. Open-source licensing describes how code can be used and developed; whether a connection works depends on the configuration, remote service, and current network. A client's name alone says nothing about connectivity.
Project V & Core Families
V2Ray is part of the Project V proxy ecosystem, built around separate configuration for inbound and outbound connections, routing, and transport modules. V2Fly continues V2Ray's community development, while Xray has developed from related code into a separate core. They share concepts and some configuration fields, but that doesn't mean every new feature works the same way. When following a guide, check both the client and the core actually in use: “V2Ray configuration” alone doesn't define the compatibility scope.
VMess, VLESS, Trojan, and Shadowsocks are protocols. TCP and WebSocket are transport options, while TLS covers transport security. These belong to different layers, not one group of interchangeable options. If the server address is correct but the connection still fails, check the port, protocol credentials, transport path, and server name—not just the server label.
What Each Desktop Client Does
v2rayN is for desktop platforms, with an interface for subscription management, server lists, logs, system proxy, and routing. v2rayNG is for Android and uses the Xray core; v2flyNG is an Android option based on the V2Fly core. All three are open-source software for local configuration management and connection control. They don't provide remote servers, and installing them doesn't give you a usable subscription automatically.
Desktop and phone clients can use subscriptions from the same source, but system permissions, traffic handling, and background activity work differently. Desktop tray instructions don't apply to phones, and a phone's connection permission doesn't replace the desktop system proxy setting. To use a subscription across devices, sync the subscription source first, then check each device's runtime settings separately.
Open-Source Licenses & Configuration Boundaries
The v2rayN, v2rayNG, and v2flyNG client projects use the GPL-3.0 license; the V2Fly and Xray core code uses the MPL-2.0 license. Check each project's license notices for specific files and included dependencies. Open-source licenses govern the use, modification, and redistribution of code; they don't guarantee that remote servers are available. A free client also doesn't mean every third-party subscription is free or will remain valid.
Subscription URLs, user IDs, and authentication fields may be linked to personal accounts. Share complete configurations only with trusted devices, and remove sensitive details from public logs. When asking for help, include the error type, protocol, and necessary settings; don't post a full subscription URL or node QR code just to describe a problem.
Updates & Troubleshooting
Client, core, subscription, and routing data updates each change different things. A client update may change the interface or how configurations are generated; a core update affects protocol implementation; a subscription update fetches remote servers; and a routing data update changes domain or address lists. Updating one doesn't refresh the others. Before troubleshooting, note what you just changed to help identify which layer is responsible.
When something goes wrong, preserve the smallest configuration that reproduces the issue, check the system clock and local port, then review TLS, routing, and DNS. Don't switch servers, change cores, and enable TUN all in one test. For menu instructions by platform, use the cross-platform guide. For a specific concept, check the FAQ first, then return to the steps you're following.