Ecosystem history: similar names, different roles
Project V is a good starting point for understanding the V2Ray ecosystem. V2Ray organizes features such as inbounds, outbounds, and routing into a configurable networking tool. V2Fly continues the community development of V2Ray, while Xray grew out of V2Ray-related code and has developed its own features and configuration direction. These are not different skins of the same product, and a project’s name alone does not tell you whether it supports a particular protocol or field.
Most users interact with a GUI client. It provides controls for subscriptions, node lists, system proxy settings, and logs, while the core handles the actual data processing. An option shown in the interface does not mean every core accepts the same parameters. Before following a guide, check which client-and-core combination it covers.
Core projects: choose based on configuration needs
v2rayNG is an open-source Android client that uses the Xray core; v2flyNG is an Android alternative built on the V2Fly core. v2rayN is for desktop systems, and its protocol support depends on the core in use. A protocol name in a node link is only part of the configuration: the transport, TLS, server name, and other parameters also affect whether a connection works.
VMess, VLESS, and Trojan are not GUI styles, nor can they be ranked simply by speed. Real-world performance depends on the server implementation, network path, transport settings, and local environment. If your current configuration works, there’s no need to switch just because another protocol has a newer name. If you need a specific feature, check that the client, core, and server all support it.
Open-source licensing: understand each project separately
v2rayN, v2rayNG, and v2flyNG have public source code and are supported by their communities; the clients are free to use. At the core level, V2Fly’s V2Ray core and Xray core use the MPL 2.0 license. Each GUI client has its own license terms. A client and the core it calls are separate projects, so one project’s license does not cover every term for the entire software stack.
Using software normally and redistributing it after modifying the code are different scenarios. For derivative development or repackaging, read each relevant project’s license files and check your obligations for source code, notices, and distribution. This site focuses on setup and configuration. Open-source context is provided to explain how projects relate; it does not replace the actual license terms or mean this site participates in their development.
Updates: check the interface, core, and rules separately
A client update may affect the interface and dependencies; a core update may change protocol behavior or field support; GeoIP and GeoSite data updates may change which entries match in some routing sets. Treat these as separate kinds of changes. If something behaves differently after an update, check the release notes and logs, then confirm whether your routing and DNS settings are unchanged. Don’t assume the node is the cause of every change.
Keep a recoverable copy of your configuration before updating. Afterward, test a basic connection before checking custom rules. Menu names in older guides may have changed, and a configuration snippet may only work with a particular core. This site covers common operations in the setup guides, configuration structure and fields in the JSON guide, and specific troubleshooting cases in the practical tips section.