Open-source ecosystem and maintenance
Project V, V2Fly, and Xray
“V2Ray” is often used as a catch-all for a family of related proxy tools, but client names, core families, and protocol names are not interchangeable. Knowing the difference helps you choose an app, import the right config, and determine whether an issue lies in the UI settings or the core’s capabilities.
Origins and core branches
Project V brings together composable network proxy tools, including the well-known V2Ray implementation. The V2Fly community continues work on related core projects, while Xray has developed its own feature path from related technical foundations. The two share some concepts, but their implementations and configs differ. Switching cores doesn’t guarantee that every config will work unchanged.
Protocols, transports, and security settings need to be understood together. VLESS and VMess are proxy protocols; REALITY relates to connection security, while transport is a separate setting. Server share links often include all of these details. Judging compatibility by a single label can overlook required server-side parameters, leading to a successful import but a failed handshake.
What the three clients do
v2rayN, v2rayNG, and v2flyNG are open-source GUI clients. They provide interfaces for managing subscriptions, selecting servers, and configuring settings, while the corresponding core handles network traffic. v2rayN is for desktop use; v2rayNG and v2flyNG are for Android and use Xray and V2Fly respectively.
Choose a client based on your device’s operating system and the features your existing config requires. Seeing the same protocol name in two interfaces does not guarantee equal support for every transport combination. If a config already works, preserve its key parameters. When migrating, test a small setup first, then move subscriptions and rules to avoid conflating a UI change with a network issue.
Open-source licenses and config resources
Open source means code can be viewed, used, and modified under its applicable license; it doesn’t mean every related component uses the same license. Clients, cores, and bundled rule data may each have different terms. When redistributing or modifying software, follow the license for each component and retain any required notices instead of treating the ecosystem as a single product.
Free client software and charges for remote servers are separate matters. Installing an app doesn’t create a working server; the source provider controls subscription validity, access, and node maintenance. This site provides download links and usage guides, not subscription accounts. Before importing config, make sure the source is trustworthy, you’re authorized to use it, and you understand the network settings it contains.
What to check before and after updates
Updating the GUI, core, and routing data may require separate steps. After updating the client, recheck the selected core, active server, and local listener. After updating a subscription, confirm that your current node is still listed by the source. Don’t update every component after a single failed connection; adding variables makes the issue harder to reproduce.
Before updating, use the client’s export feature to save any settings you need, and store files containing sensitive information securely. After updating, test a config that previously worked, then check custom DNS, routing rules, and how apps connect. If a new error appears, record its exact message and the steps that led to it. Troubleshoot based on the symptoms instead of assuming that a completed update means the connection is fixed.