From Project V to the core ecosystem
Project V is a project ecosystem built around proxy communications, and V2Ray is one of its best-known tools. As the community developed, V2Fly continued maintaining and evolving V2Ray, while Xray emerged from related code as an independent fork with its own features and configuration support. Understanding this history helps avoid treating the three names as interchangeable labels for the same software. They share technical roots, but their current capabilities should be checked separately. A feature added in one fork cannot automatically be assumed to work in another.
In everyday conversation, “V2Ray subscription” is often used broadly to mean a set of proxy server configurations. The label does not guarantee that every client can parse everything in the subscription. It may contain different protocols, transports, and security parameters, which the client must convert into a configuration the target core understands. Importing successfully is just the first step: confirm that the selected server has all required parameters, the core starts normally, and the connection uses the expected outbound.
Clients manage settings; cores handle connections
v2rayN provides a desktop GUI for organizing subscription groups, selecting servers, managing routing, and changing proxy modes. Its actual network capabilities depend on the core and related components in use; check the options in your current release. v2rayNG is an open-source Android client using the Xray core, while v2flyNG is an Android alternative using the V2Fly core. All three clients are primarily managed through a GUI, but menu locations, import formats, and advanced options differ. Match tutorial instructions to the interface you are using.
For REALITY configurations, distinguish the protocol, transport layer, and security mechanism. REALITY is not a general-purpose acceleration option you can enable with a click on any server. Both ends of the connection need matching settings and compatible implementations. Do not change key subscription parameters based on guesswork; check the source if anything required is missing. Changing the client icon or switching interface editions will not fill in remote settings or change which protocols the server supports.
What open-source licenses mean
Open source means code can be viewed, used, modified, or distributed under the terms of its license; it does not mean every related project uses the same license. The V2Ray core from V2Fly is released under the MIT License, while the Xray core uses MPL 2.0. GUI clients, cores, and bundled components may each have separate terms. For everyday use, check the client's project information to see what it includes. Before modifying or redistributing software, review each relevant license rather than assuming the core's license applies to the entire package.
Publicly available code does not replace local access controls. Subscription URLs may be tied to an account, configurations may contain server addresses and credentials, and logs may record destinations. When sharing screenshots, keep the error type and necessary details visible, but redact sensitive information. Before enabling “Allow connections from the local network,” check the listening address, authentication, and firewall scope. This setting controls whether other devices can access your local proxy port; it is not necessary to make the current computer's connection more stable.
Update the client—and check your configuration and rules
The client application, proxy core, subscription content, and geoip and geosite rule data are separate update targets. A client update can change the interface and how configuration is generated; a core update can change supported fields; a subscription update fetches server parameters; and a rule database update affects domain and address classification. If a site does not route as expected, first check which rule matched and its position. Then decide whether the data files need updating rather than replacing every component at once.
Before updating, back up custom routing and DNS settings and note the current proxy mode. After the update, test the basic connection with your existing configuration before enabling new features one at a time. If a problem started after a change, reverting the last change is usually easier to diagnose than adjusting ports, DNS, and routing together. Some GUI clients regenerate their runtime configuration, so direct edits to generated files may be overwritten on the next launch. Save persistent changes through a customization option supported by the client.
Break connection problems into testable steps
A failed subscription update and a failed server connection are different problems. For an update failure, check that the subscription URL is complete and still valid, and find out which network path the update request uses. For a connection failure, check the selected server, protocol parameters, system clock, and core logs. Seeing a server list does not mean the system proxy is enabled, and a working browser does not mean every app uses the same proxy settings. Check in order—import, startup, traffic capture, DNS resolution, and routing—to avoid reinstalling without evidence.
Start with the system proxy for everyday use, confirm the basic connection, then add routing rules. Enable TUN only when you need to capture traffic from specific apps. Advanced topics such as DNS and FakeDNS require an understanding of the core and routing strategy; copying a single setting is not enough. The tutorial covers importing subscriptions, choosing a mode, and testing the connection. The advanced configuration manual covers filters, custom outbounds, and complex DNS setups. If you have a specific error, check the FAQ for the relevant step before deciding what to change.