Client directory and configuration references

V2Ray Index v2rayN downloads

Platform guides for the v2rayN desktop client and v2rayNG / v2flyNG Android clients, covering subscription imports, routing, and JSON configuration fields.

PROTOCOLS
  • VMess
  • VLESS
  • Trojan
  • REALITY
  • Shadowsocks

CONFIGURATION / FIELD INDEX

JSON configuration and client settings directory

Distinguish the app, core configuration and remote service before deciding which settings to change.

The client window stores server profiles, organizes subscription groups and generates the runtime configuration. The core accepts inbound connections, selects routes and establishes outbound connections. These are separate layers. Changing the system proxy does not change routing, and updating a subscription does not update the core. When troubleshooting, first identify the layer where the issue occurs, then check the relevant settings page or logs. This helps avoid repeated reinstalls and the confusion caused by changing several options at once.

REFERENCE CATALOGUE

One JSON config,
four platforms,
three clients

JSON is a shared starting point for understanding configuration structure, but that does not mean the same file works across different cores. Clients, cores and protocols each have their own compatibility limits. Even when field names match, check the accepted values and version-specific documentation.

For a first setup, use the graphical interface to import a subscription and configure the system proxy. When you need to adjust domain routing, local listeners or DNS behavior, consult the field reference and review the generated configuration. Do not import a complete runtime configuration as a regular subscription URL, or treat a client backup as a core configuration file.

Read the JSON reference →

Routing rules select the outbound in order

Routing applies to traffic that has entered the core. Assign clear tags to outbounds first, then use rules to match domains, addresses or ports to the appropriate outbound. When rules overlap, place narrower exceptions earlier. The system proxy affects only apps that follow that setting; it does not replace routing rules. If a site uses the wrong outbound, check which rule matched, then review the default outbound and domain-resolution policy. Rule-based routing keeps traffic paths consistent compared with switching servers one by one, but the rules still need maintenance.

domainStrategy
AsIs
rules[].type
field
rules[].outboundTag
direct

CLIENTS / PLATFORM DIRECTORY

V2Ray client downloads by platform

Check your operating system and processor architecture before choosing a client and package format.

Use v2rayN on desktop platforms. On Android, choose v2rayNG or v2flyNG based on core requirements. The download center lists package links and selection guidance; this page does not list specific versions. Before installing, check the architecture shown in your system information. Package format, processor type and graphical environment are separate considerations: a successful download does not mean the file is compatible with your device.

Windows

V2RAYN / DESKTOP · WPF

v2rayN offers two desktop interface options: a cross-platform edition and the classic WPF edition. The WPF edition retains the traditional desktop workflow. Choose based on the interface you know and your system environment; these are not different protocols. After installation, import a subscription in the graphical interface, select an active server, then check the local listener and system proxy.

If the device already has a configuration, back up its profiles in the client before deciding whether to switch interfaces. When prompted for dependencies on first launch, follow the instructions to set up the required runtime. If a port is in use, check the logs and listener settings rather than reinstalling immediately. Clear the system proxy before exiting the client to avoid leaving apps pointed at a local listener that is no longer running. See the getting started guide for installation steps.

Go to downloads

macOS

V2RAYN / ARM64 · X64

v2rayN packages are available for Apple Silicon and Intel. Check the chip or processor in About This Mac, then use the matching download link; do not guess based on the device's appearance or purchase date. After installation, confirm the app is in the expected folder and follow the system's prompts for first-launch security checks. Not every launch failure is a network issue.

After importing a subscription, check that an active server is selected before choosing a proxy mode. The system proxy works only for apps that follow the system setting; some apps require a proxy to be configured in their own settings. If connections fail after waking from sleep, changing networks or closing the client, first check that the proxy toggle and local listener agree, then review the remote connection logs. Avoid changing several layers at once.

Go to downloads

Android

V2RAYNG · V2FLYNG / ARM64 · UNIVERSAL

v2rayNG uses the Xray core and is the download center's primary Android recommendation. v2flyNG uses the V2Fly core as an alternative for that ecosystem. Most recent devices use arm64; if you are unsure of your device architecture, check the general package link and your system information. The two clients use different cores, so after importing the same profile, verify that its protocol and transport options are supported.

A system VPN permission is required to establish a connection for the first time. If another VPN app is already running, check for a service conflict first. A successful subscription update means the profiles were retrieved; it does not mean an active server was selected or a connection was established. After connecting, verify the status using logs and actual access. If the app stops in the background, check the system's battery management settings. Do not rely on latency tests alone to judge connection stability.

Go to downloads

Linux

V2RAYN / DEB · RPM

v2rayN provides deb and rpm packages, with x64 and arm64 options. Check both your distribution's package system and your device architecture; neither is enough on its own. The desktop client also requires a working graphical environment. If the package manager reports missing dependencies, follow your distribution's instructions to install them before launching the app.

System proxy handling varies across desktop environments, and browsers or other apps may have their own proxy settings. After importing a profile, check the local listener address and port in the target app, then review system settings layer by layer. The listener should remain bound to the local machine unless LAN access is required; if it is, configure firewall rules and permissions. Confirm installation, core startup and the flow of app traffic through the proxy separately.

Go to downloads

Browse all clients →

PROJECT V / CORE FAMILY

Project V, V2Fly and the Xray core

Open-source projects, runtime cores and graphical clients explain where configurations come from, how connections are handled and where users manage settings.

ECOSYSTEM

Project V and its configuration model

Project V is an open-source ecosystem of proxy and networking tools, with V2Ray as one of its widely used names. Its configuration model separates inbounds, outbounds, routing, DNS and policies: inbounds accept connections from local apps, outbounds define how to reach destinations, and routing selects a path between them. Understanding these layers is more useful than memorizing where a particular button is in one client. It also helps distinguish problems at the local connection-acceptance stage from those at the remote connection stage.

Graphical clients typically generate the core's runtime configuration from interface settings, so avoid editing generated files directly unless you understand how they are managed. Such changes may be overwritten when the client restarts, switches servers or updates settings. For custom rules that need to persist, use the client's rule manager or custom configuration entry point where possible, and note which layer manages them. When reading a manual, distinguish example snippets from complete files; a single field cannot handle the entire connection flow.

CORE FAMILY

What V2Fly and Xray share—and where they differ

The V2Fly community continues development and maintenance of the V2Ray core project. Xray is a separate core that developed from related code. They share configuration concepts, but protocol support, field details and new features do not always match. Capabilities such as REALITY depend on the core in use. A client displaying a particular option does not guarantee that all its parameters work in another core.

When troubleshooting compatibility, note the client, runtime core, protocol, security layer and transport together. Saying only “using V2Ray” is not enough to reproduce an issue. If no profile appears after import, check the content format. If the core will not start, check fields and dependencies. If it starts but cannot connect, verify server parameters and network conditions. Troubleshooting one stage at a time makes it easier to relate actions to logs and avoids treating every error as the same problem.

OPEN SOURCE

Open-source status of the three clients

v2rayN, v2rayNG and v2flyNG are all open-source graphical clients. Their source code is available under each project's license; use, modification and redistribution must follow the applicable terms. Client code, core code and bundled components may have different licenses, so one project's license does not cover every component. Open-source status also does not guarantee that every configuration suits your use case. Check network access permissions and service terms separately.

The three clients focus on managing configurations and connections through a graphical interface; they do not provide remote servers. You still need valid server profiles or subscription content. The subscription provider is responsible for its service address, validity period and access permissions; the client retrieves and uses that information. This site provides download links and technical guidance, not connection credentials. Before sharing screenshots or logs, remove subscription URLs, user identifiers and other access details.

UPDATE PRACTICE

Update clients, cores and subscriptions separately

Client updates mainly affect the interface, configuration generation and integration. Core updates affect connection handling and protocol implementation. Subscription updates synchronize server entries. These are separate operations, not different names for the same update, and one cannot replace another. Updating the client may not help when a subscription has expired; repeatedly refreshing a subscription will not add support for fields missing from the core. Identify the problem first, then use the relevant update path.

Before changing your setup, keep a restorable configuration backup and note the active server, routing mode and listener settings. After an update, check that the client starts, then test subscription retrieval and actual access. With custom JSON, watch for changes to fields and defaults. When an error occurs, return to the specific log instead of disabling all verification or deleting every rule at once. The download center helps you choose packages; setup steps and field details are covered in the guides and JSON reference.

Suggested reading order: start with the getting started guide for installation, check the glossary for unfamiliar terms, and consult the field reference when you need to change a configuration. When a connection issue spans several layers, preserve the smallest reproducible set of steps; it is more useful for diagnosis than repeatedly switching settings.

TECHNICAL NOTES / RECENT ENTRIES

v2rayN settings and troubleshooting notes

Start with three areas—proxy mode, server selection and local ports—to distinguish configuration issues from connection problems.

These technical notes are organized around common tasks, so you do not need to read every configuration field first. Identify when the error occurs, then choose the relevant article: check proxy mode if an app bypasses the proxy, server selection if only some servers behave differently, or port troubleshooting if the core cannot listen. A single test reflects conditions at that moment. After changing a setting, repeat the test the same way and compare the results.

Browse all articles →