Project V ecosystem · Xray / V2Fly cores

V2Ray Official Portal Download v2rayN and setup guide

Choose an open-source client for your platform, import a subscription, then configure routing and TUN mode.

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks
  • REALITY

SETUP / CLIENT CONTROLS

v2rayN Features and Settings

Separate the client interface, core processing, and remote connection. Subscription management organizes server settings, the system proxy directs app traffic to the client, and routing rules choose the outbound path. Check each layer separately to pinpoint connection issues.

v2rayN · Features

Update server settings by group

A subscription URL retrieves server configurations in bulk; it is not the same as a single-server share link. In Subscription Groups, add a group, enter its name and URL, save it, and run an update. Then check the server list in that group. Unlike entering each server manually, a subscription can sync addresses, ports, and transport settings in one place. If an update fails, first make sure the URL is still valid, then check whether updates are set to use a direct connection or the proxy. Subscription URLs may contain access credentials: store them somewhere secure, hide the full URL when showing the interface, and never share screenshots that reveal credentials.

Subscription Groups → Subscription Group Settings
Add Group → Enter Subscription URL → Save
Update Subscription → Check Server List
Select a feature to view setup notes · Keycaps indicate list indexes; no global shortcuts are registered

Verify the connection before adding rules

For your first setup, use a single working server and one preset routing profile. Once a browser can make real requests, adjust split routing, DNS, or TUN. Change one setting at a time and note its previous value so you can return to a known-good state if something goes wrong.

Use speed tests as one input, not the whole picture

Latency checks, real connection tests, and download speed tests measure different things. A single latency reading cannot confirm that the target site, DNS resolution, and app proxy settings are all working. When comparing servers, use the same test method and consider actual browsing results. Do not mix rankings from different kinds of tests.

Client Choice / PLATFORMS

Download a client for your operating system

Use v2rayN on desktop. For Android, v2rayNG is the usual first choice; consider v2flyNG if you need a V2Fly core. Check your device architecture and the available package format before choosing a download. Version details are listed on the client cards on the download page.

Windows

v2rayN · Desktop / WPF

The desktop edition uses a cross-platform interface, while the classic WPF edition retains its familiar layout. If you're installing for the first time, start with the desktop edition. If you already have a classic setup, choose based on your interface preference and compatibility needs. With either edition, import your subscription before configuring the system proxy and routing.

Before installing, check your system architecture and runtime requirements. Keep the app and its configuration in a dedicated folder rather than running it from a temporary directory. Before switching interfaces or updating, export any settings you need to keep and make sure no other software is using the local port.

Go to downloads

macOS

v2rayN · Apple Silicon / Intel

Check your chip under About This Mac: choose arm64 for Apple Silicon or x64 for Intel. The architecture determines whether the program can run; it has nothing to do with whether your subscription uses VMess or VLESS, or where the server is located.

On first launch, follow the system prompts to grant app permissions. Test a regular proxy connection first, then enable network features that need additional permissions if required. If startup fails, check that the package matches your chip, then review app permissions. Don't mistake a launch problem for a subscription issue.

Go to downloads

Android

v2rayNG / v2flyNG

v2rayNG uses the Xray core and is the first choice for Android. v2flyNG uses the V2Fly core and is an alternative for compatibility needs. Most arm64 devices should use the matching package. If you're unsure of the architecture, check the universal-version notes on the download page rather than relying on the phone brand.

After importing, select a server and approve the VPN connection prompt when you connect. Background restrictions and battery optimization can affect long-running connections. If the connection drops when the app goes into the background, check the system's background-running settings and make sure another app is not using the VPN connection.

Go to downloads

Linux

v2rayN · deb / rpm

Choose deb or rpm to match your distribution's package system, then select x64 or arm64. The GUI client is intended for desktop environments. After installation, check the proxy settings for your desktop session; whether an app uses the system proxy depends on the app and its runtime environment.

Use a graphical package manager to install the app and its dependencies when possible. Before using TUN, check system permissions and existing network management tools to avoid having multiple sets of rules controlling traffic. If the regular proxy works but TUN does not, check local permissions and routing before changing your subscription.

Go to downloads

FIRST SETUP / QUICK START

From subscription import to connection check

The client and server configuration are separate parts. Installing the app prepares the local tools, but a connection also requires valid server settings. If you have a subscription, follow these steps. If you only have a single share link, import it from the clipboard and go straight to step two.

  1. Add a subscription group and update it

    Open Subscription Group Settings, add a group, and paste the full URL. Save it, then run an update. Check that servers appear in the list and that their types, ports, and security settings were parsed correctly. A subscription URL retrieves configurations; it does not belong in the server address field. When copying from a web page, watch for leading or trailing spaces and truncated text.

    If an update fails, determine whether the URL is unreachable, its access credentials have expired, or the client cannot parse the response. Keep your existing settings and avoid repeatedly deleting and recreating the group. Subscription converters can access your original configurations, so use a trusted service only when you actually need to convert formats.

  2. Select a server, then set the proxy and routing separately

    Choose a server from the list to make it active. On desktop, enable Set system proxy automatically and choose a routing preset for your needs. On Android, start the connection and approve the system prompt. The system proxy and global routing operate at different layers: choosing global routing does not automatically make every app use the local proxy.

    Keep other settings unchanged during your first setup. Adjust the listening address and access controls only if you need to share the connection on your local network; for local use, keep the local listening address. Avoid enabling multiple network-level routing tools at once. First establish a basic connection you can test consistently.

  3. Test access and use logs to diagnose problems

    Test the connection, then open the target site in the app you want to use. Check DNS resolution, connection establishment, and the app's proxy settings separately. If a latency test succeeds but a page will not load, check for incorrect TLS settings, DNS problems, or an app that bypasses the system proxy instead of simply running more speed tests.

    For further troubleshooting, note the test time, selected server, and a summary of the error. Remove subscription URLs, user IDs, and authentication details before sharing logs. After the connection works again, add split-routing rules one at a time. Clear the system proxy before exiting for the day so apps do not keep pointing to a closed listening port.

CORES AND CLIENTS / OPEN SOURCE

Project V, V2Fly, and Xray

V2Ray is not the name of a single app with a fixed interface. Understanding how projects, cores, and GUI clients fit together helps avoid confusion when choosing packages, importing settings, or updating. It also helps you tell whether a setting belongs in the client or needs to be handled on the server.

Project background and core branches

Project V is an open-source ecosystem built around network proxy tools, with V2Ray as one of its key projects. The V2Fly community continues V2Ray's development and maintenance, while Xray has grown from related technical foundations into an independent core. The two share a background, but protocol extensions, configuration fields, and feature development are not identical. Similar names do not mean every configuration is interchangeable.

VMess, VLESS, Trojan, and Shadowsocks are protocol choices; REALITY is a security mechanism, while XTLS Vision involves specific flow-control and forwarding behavior. Server configurations often combine protocol, transport, security, and flow-control settings. To check compatibility, verify the complete set of parameters against the core's capabilities rather than assuming compatibility from one protocol name.

How the GUI and protocol execution fit together

v2rayN, v2rayNG, and v2flyNG are open-source GUI clients. They provide server lists, subscription updates, settings editors, and connection controls; the core reads the generated configuration and handles the connection. On desktop, choose v2rayN. On Android, choose between v2rayNG and v2flyNG based on Xray or V2Fly compatibility needs. Base your choice on the features you need and your device environment, not on an assumed ranking between the names.

Open source means you can review, use, and modify code under each project's license. The V2Fly and Xray cores use the MPL 2.0 license; GUI clients have their own licenses and distribution terms. Open-source status helps explain how software is developed and maintained, but it does not replace checking your subscription source, server permissions, configuration, or device environment. A client is not a server subscription.

Clients and cores are maintained separately

GUI updates may affect subscription parsing, interface behavior, and operating-system compatibility. Core updates may change protocol behavior, routing, or connection handling. These updates address different issues. If a new field is not recognized, check core support first. If the interface will not open or a menu behaves unexpectedly, check the client runtime environment; you usually do not need to change the server configuration.

Before updating, export the settings you need and note your current listening port, routing choice, and DNS settings. After the update, retest with the same server and target app, then restore custom settings one at a time. If connection behavior changes, compare results with the same settings before and after the update. For a structured learning path, follow the full guide from core concepts, installation, and subscriptions through TUN and routine maintenance.

Read the complete guide

SETUP NOTES / RECENT NOTES

V2Ray Setup and Troubleshooting Notes

Find the setting behind common problems: check system requirements for installation issues, connection settings and parameters for connection problems, and compare clients by platform and core needs. These three articles are listed from newest to oldest.