V2RAY · V2RAYN · V2RAYNG

V2Ray Guides andv2rayN Client Downloads.

From subscription import to proxy routing, configure v2rayN / v2rayNG step by step and use core logs to diagnose connection issues.

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks

CLIENT SELECTION

Choose a client for your platform

Start with v2rayN on desktop and consider v2rayNG on Android. Match the package architecture to your device’s processor; the package format depends on the operating system and distribution. Choose the right client first, then import your existing server configuration to keep installation issues separate from connection problems.

Windows

v2rayN Desktop and WPF Editions

The Desktop edition features a next-generation cross-platform interface, while the WPF edition retains the classic desktop workflow. New users can start with the Desktop edition to explore the server list, subscription groups, and log panel. If you’re used to the classic interface, you can choose WPF instead. These are interface options—not purchase plans—and importing a subscription does not guarantee a connection.

Before installing, check your processor architecture in system settings and review the download page’s requirements. After launch, add a subscription group and update it, then select a configuration and run a real connection test. Enabling the system proxy affects only apps that honor system proxy settings. A working browser connection does not mean every app uses the same route.

Go to Downloads
macOS

Choose a v2rayN build for your chip

Check your chip under “About This Mac”: choose arm64 for Apple Silicon and x64 for an Intel processor. The two installers are for different architectures; you don’t need both. If macOS displays a security prompt during installation, verify what it refers to and where the installer came from, then follow the steps provided by the system.

The desktop client stores configurations, switches servers, and generates runtime parameters for the core; the core handles the actual connection. After importing a configuration, confirm which server is active and check the proxy mode. When switching clients, avoid overwriting the entire data directory. Keep the original settings and migrate subscriptions and rules individually to spot differences in paths and permissions.

Go to Downloads
Android

v2rayNG and v2flyNG

v2rayNG uses the Xray core and is the recommended starting point on Android; v2flyNG uses the V2Fly core as an alternative when you specifically need it. For most newer phones, start by checking the arm64 package. If you’re unsure of your device’s architecture, consult the universal-build guidance. Always follow the device’s actual architecture and system requirements rather than its release year.

The first time you connect, Android asks for permission to establish a VPN connection. This is the system interface the client uses to handle selected traffic. After granting permission, check per-app proxy settings, routing mode, and background activity restrictions. If the connection drops after the app has been in the background, check battery optimization and process status before blaming the subscription URL or server settings.

Go to Downloads
Linux

v2rayN packages for Linux

Debian, Ubuntu, and compatible distributions generally use deb packages; Fedora and other RPM-based distributions use rpm packages. You also need to choose between x64 and arm64. Package format and processor architecture are separate requirements: the wrong architecture can prevent installation or launch even when the package format is correct.

After launching the GUI client, manage subscriptions and run a basic connection test without elevated permissions. Consider network interception features that require extra permissions only afterward. Desktop environments differ in their system proxy support, and some apps require separate configuration. If apps behave differently, note whether each honors the desktop proxy and which DNS it uses before deciding whether to enable TUN.

Go to Downloads

The client package does not include a ready-to-use server. Connection addresses, ports, authentication parameters, and subscription links must come from a service you’re authorized to use or from your own setup. Complete installation, import, testing, and verification as separate steps, in that order.

View all clients →

CONFIGURATION INDEX

Subscriptions, Routing, and Logs

Break down configuration issues by asking where the configuration comes from, where traffic enters, which outbound route it matches, and how domains are resolved. The five shortcuts below cover common topics. The examples show selected fields, not complete, standalone configurations. Actual fields must match the chosen core and the configuration generated by the client.

Subscription Import and Local Listening

Subscriptions fetch server configurations in bulk; they do not establish a connection by themselves. In v2rayN, save the full URL in a subscription group and update it. On Android, add a group first, then update the configurations. Once entries appear, select an active server and test the connection. The SOCKS inbound snippet below is separate from subscription data; listening on a loopback address accepts connections only from the local machine. If an update fails, check the subscription request logs rather than changing the inbound port to fix a remote URL.

{
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ]
}
Read the inbound configuration reference →

For a first-time setup, keep the default routing, connect using one server entry with verified, complete parameters, and then add routing and DNS settings gradually. Turning on several options at once makes troubleshooting harder. Change one variable at a time and record its previous value so you can compare or revert later.

Follow the full first-connection setup →

PROJECT V ECOSYSTEM

How the Client and Core Work Together

V2Ray is a useful starting point for understanding this proxy ecosystem, but client, core, and protocol names refer to different things. Knowing what each one does is more helpful than comparing software names alone, and helps prevent misunderstandings when adapting configurations.

Ecosystem backgroundProject V

Configuration structure and proxy components

Core familiesV2Fly / Xray

Protocol handling and connection execution

GUI clientsv2rayN / v2rayNG / v2flyNG

Configuration management and user interface

BACKGROUND

Project V and Configuration Structure

Project V divides proxy functionality into cooperating components, and V2Ray is one widely used implementation. To understand a configuration, think of inbounds as entry points for app traffic, outbounds as ways to connect to destinations, and routing as the rules that select between them. DNS, logging, and policies provide resolution, observability, and resource management. This structure lets one configuration define multiple entry points and outbounds—and explains why changing only a server address often won’t solve every connection issue.

GUI clients present these structures as lists, groups, switches, and forms, making day-to-day management easier. They are not remote servers and do not replace server-side configuration. Importing a link usually converts its parameters into a local entry. At launch, the client may generate a new runtime configuration based on the current routing mode, listening ports, and user settings. When following a guide, distinguish between the saved entry created during import and the configuration the core actually reads; they may not be identical files or views.

CORE FAMILIES

How V2Fly and Xray Relate

V2Fly continues the community maintenance of V2Ray, while Xray developed from a related code fork. They share some configuration concepts, but their protocol features, supported fields, and ongoing development differ. Similar-looking JSON does not mean every field is interchangeable; a transport setting accepted by one core may be interpreted differently by the other. To check compatibility, confirm which core the client actually runs, then verify the protocol, transport, and security combination.

VMess, VLESS, Trojan, and Shadowsocks are protocol names; WebSocket and gRPC describe transport methods; TLS covers a separate layer of connection security. These terms may all appear in one server entry, but each serves a different purpose. Troubleshoot by checking the address and port, authentication parameters, transport path, and server name in order, rather than switching cores at random. Choose a core as part of your configuration only when you need a specific feature.

OPEN SOURCE CLIENTS

Open-Source Status of Three Clients

v2rayN, v2rayNG, and v2flyNG are open-source GUI clients maintained by community projects. v2rayN targets desktop platforms and provides common features such as server management, subscription groups, and routing. On Android, v2rayNG uses the Xray core, while v2flyNG uses the V2Fly core. Choose based on your device, system requirements, and server parameters first, then consider which interface you prefer. Similar names do not mean these are the same package or that they share a data directory.

Open-source licenses define the terms for using, modifying, and redistributing software; they do not describe whether a remote service is available. The core code for V2Ray and Xray uses MPL 2.0, but check each client and bundled component for its own license and notices. Clients may be free to use, while remote servers, network access, and subscription services may come from different providers. Distinguishing the software from the service helps identify where to troubleshoot and avoids mistaking service charges for client licensing requirements.

UPDATE & DIAGNOSIS

Updates, Rollbacks, and Preserving Settings

Updating a client and updating its core are not always the same operation. Interface changes may move settings, while core changes can affect field compatibility and protocol behavior. Before updating, save your subscription groups, custom routing, and essential personal settings, and review the release notes. After updating, check that existing configurations start, then test common use cases. Restore experimental routing or traffic capture settings only after the basic connection works. This keeps upgrade-related changes easier to isolate and compare.

If an update causes problems, note the client type, active core, operating system, and when the error occurs before doing anything else. Don’t immediately delete all settings and reinstall. If the core fails to start, check the first configuration error; if only some domains fail, check DNS and rule matches; if the browser works but other apps don’t, check proxy coverage. Hide real server details, subscription URLs, and authentication information in logs before documenting reproducible steps. For field definitions and minimal examples, see the configuration reference; for the steps to follow, start with the user guide.

TECHNICAL NOTES

Recent Technical Notes

User guides cover complete workflows, while technical notes focus on a specific issue. If installation is complete but you’re unsure what to check next, start with the first-connection guide. To learn how the buttons and panels fit together, begin with the main window overview. If you’re ready to change routing, move on to rule syntax and match order.

When troubleshooting, first identify whether the issue occurs during subscription updates, core startup, connection setup, or app access. The same “timeout” message can come from different stages. Checking where it appears and the preceding log entry is usually more effective than retrying repeatedly.

View all articles →
V2Ray Client Downloads