Understanding the difference between a core and a client helps clarify feature support. The core handles network logic such as protocols, routing, and DNS; the client organizes subscriptions, servers, and settings into a runnable configuration. Clients with similar names don't necessarily use the same core, and a server configuration won't necessarily run on every core as-is.
What is the background of Project V?
Project V is an open-source project ecosystem focused on network proxy and communication tools, with V2Ray as one of its best-known core applications. As development and maintenance paths evolved, V2Fly continued work related to V2Ray, while Xray developed its own implementation and feature roadmap from related code. As a result, “V2Ray” in everyday searches may refer either to the broader use case or to a specific core. Use the precise project or core name when looking up configuration syntax.
This doesn't mean installing one app gives you every feature. A graphical client can wrap different core integrations, while each core determines which protocols, transports, and configuration fields it supports. If a server imports but won't start, check which core is selected and read the startup logs to see whether a field is unrecognized. Don't infer compatibility from the client name alone.
V2Fly or Xray: which should you choose?
Start with the protocols and transport requirements provided by your server, then consider the effort of migrating existing settings. The two share some concepts and history, but their feature roadmaps and configuration support aren't identical. For configurations that use REALITY, a particular flow, or similar parameters, verify that the selected core supports them. Renaming a file or copying it into another client doesn't convert the configuration.
For most users, the complete settings provided by a subscription matter more than abstract comparisons of core performance. The address, port, authentication, transport, and TLS options must all match; one missing field can cause a handshake failure. Without repeatable tests in the same environment, don't attribute a difference in connection speed to the core alone. Get a working setup first, then make changes to address a specific issue.
What does each of the three clients do?
v2rayN is for desktop systems and provides interfaces for subscription management, server selection, and proxy settings. v2rayNG is for Android and uses the Xray core; v2flyNG is also for Android and uses the V2Fly core. All three are open-source client projects, but none is developed by this site. Features documented for one client may not apply to the others. Start with v2rayN on desktop, and choose a mobile client based on protocol requirements.
Open source means the code and its license terms are available for review; it doesn't mean the same project provides remote servers. Client projects, core projects, and subscription services are separate parts of the ecosystem. This site organizes download links and Chinese-language guides to help explain how they fit together. Check with the service provider for server authorization, availability, and permitted use.
How should you understand open-source licenses and updates?
Open-source licenses set the terms for using, modifying, and redistributing code. “Source available” doesn't mean you can ignore those terms. Core code associated with V2Fly and Xray uses MPL 2.0, but check the license for each file, dependency, and graphical client separately. Clients, cores, and bundled components may use different licenses; refer to the notices included with the specific release to confirm its terms.
Updates also happen at different levels: client updates affect the interface and configuration generation, core updates affect network behavior, rule-data updates change domain or IP classifications, and subscription updates retrieve the server list from the provider. They don't necessarily happen together. Back up your configuration before making changes, then check the logs and test your usual apps. If a problem starts after an update, note which component changed; resetting everything at once can erase useful clues.