Open-Source Projects & Maintenance
Project V, V2Fly & Xray
Understanding the difference between a client and a core is more useful than memorizing software names. The interface manages configurations, while the core handles connections. Open-source licenses set the terms for using and distributing code; compatibility still needs to be checked feature by feature.
How Project V Fits Together
Project V is an open-source technology ecosystem for proxy communications, with V2Ray as one of its key components. Its protocols, transports, routing, and inbound and outbound processing are organized as composable modules, allowing different graphical clients to provide an interface to the same technology. Users see subscription lists and settings screens; behind the scenes, the client generates or manages the core configuration.
A client name is not a protocol name, and a subscription source is not a core project. When reporting an issue, include the client, core, connection configuration type, and operating system. That is more useful than saying only “V2Ray doesn't work.” This site organizes downloads and guides around three graphical clients. See the glossary for protocol terminology.
V2Fly and Xray: What's the Difference?
The V2Fly community maintains the V2Ray core and related documentation. Xray grew from related code and has developed its own implementation and feature set. They share a technical background, but not every feature or parameter is identical. For VLESS, REALITY, and flow-control options in particular, check whether the current core supports the full combination in your configuration rather than assuming compatibility from the protocol name alone.
Choose a core based on the requirements of your remote service. If your current configuration works reliably, identify the specific problem you want to solve before switching. A successful import only means the client can read the configuration; a working connection also requires matching parameters on both ends. For more details, read Choosing Between the Xray and V2Fly Cores.
Open-Source Licenses for the Three Clients
v2rayN provides desktop tools for subscription management, system proxy, and routing. v2rayNG is an Android client that uses the Xray core, while v2flyNG is an Android client that uses the V2Fly core. All three are open-source clients and free to use. Choose based on your platform and configuration requirements, then consider which interface you prefer. Do not mistake Android clients for desktop installers or core names for app names.
These clients primarily manage configurations and connections; remote services are a separate layer. Installing a client does not provide a valid configuration, and an open-source license does not change a subscription's expiration date or server rules. Keeping the client, configuration source, and remote service separate makes it easier to identify what needs attention when something goes wrong.
What Open-Source Licenses Mean in Practice
The v2rayN, v2rayNG, and v2flyNG client projects use GPL-family licenses. The V2Ray core from V2Fly and the Xray core use the MPL 2.0 license. Client and core licenses apply separately, and bundled components may have their own terms. For accuracy, read the license files included with the software instead of treating the entire ecosystem as though it used a single license.
Open-source licenses allow you to inspect, modify, or redistribute code under specific conditions; they do not waive attribution, source-availability, or other obligations. Most users only need to focus on installation and configuration. If you plan to modify or distribute software, read the applicable project license. A license defines the terms for using code; it does not guarantee connection speed, network availability, or service quality.
Client and Core Updates
Interface updates may move menus or change how settings are saved. Core updates may affect protocol compatibility, network handling, or bug fixes. Treat these as separate kinds of changes. The download page lists available installers, while the homepage does not pin a specific release number. Before updating, export or back up subscription groups, routing rules, and essential settings. Read the release notes, then decide whether to migrate your existing configuration.
After updating, test with the same known-good configuration. Confirm the basic connection first, then check the system proxy, TUN, and custom rules. Do not change the subscription, core, and DNS at the same time, or it will be hard to tell what caused a difference. If something goes wrong, compare against your previous settings and keep the error context instead of deleting everything and starting over.
A Checklist for Troubleshooting Configuration Issues
If a subscription update fails, first check that the URL is complete, the service is still active, and your current network can retrieve the subscription. Then try updating with and without the proxy. If the subscription updates but you cannot connect, check the active configuration and core logs. If only some apps are affected, focus on system proxy support and traffic capture rather than replacing every connection configuration.
DNS resolves domain names; routing determines how traffic is handled. They work together, but are not the same setting. Enabling TUN does not guarantee that every request uses the proxy, so check exclusions and direct-routing rules as well. Follow the troubleshooting FAQ to check each item. For DNS resolution paths, see the DNS configuration section. Do not judge the entire setup based on a single speed test.