Android · Windows · macOS · Linux clients

v2rayNG Download Hub v2rayN and v2rayNG client downloads

Choose a client for your device, then import a subscription, configure routing, and verify the connection.

Import subscriptions and set the proxy scope

Organize your configurations first, then decide which connections the client should handle.

View configuration fields

Subscription groups: manage configurations in one place

Save subscription links in separate groups, then update them as needed. A subscription URL retrieves a set of connection configurations; an update may add, remove, or change entries. Groups are easier to manage over time than pasting links one by one, and make it easier to identify where each configuration came from. After updating, select the configuration you want to use and start the connection—the refreshed list does not switch configurations automatically. If an import fails, check that the link is complete and still valid, then review the logs. Reinstalling the client should not be your first step. Subscription URLs may contain access credentials, so keep them out of public screenshots.

Subscription group settings

Add a subscription group · Save the subscription URL

Update subscription

Refresh the configuration list, then select an active configuration.

Routing presets: separate direct and proxied traffic

Choose a routing preset that fits your needs, then add only the custom rules you need. Routing rules determine where connections go—direct, through a proxy, or blocked—usually based on domains, addresses, or app characteristics. For everyday use, start with a preset that bypasses the local network, then check that local resources such as printers and shared folders are still accessible. Unlike setting a single proxy address, routing also defines which traffic is handled. After making changes, test both local services and the sites you need. If a particular type of access fails, check rule order and match conditions before changing DNS. Avoid changing several things at once, so you can pinpoint the cause.

Routing settings

Bypass local network and mainland China addresses

domainStrategy: IPIfNonMatch

Local inbound: check the address and port

Check the actual listening port in the client settings, then enter the same address in any app where you configure a proxy manually. An inbound accepts connections at the core; an outbound sends them to their destination or a remote service. The JSON below illustrates a local SOCKS inbound only. It is not a complete working configuration and does not tell you which port your device currently uses. Binding to the local loopback address limits access to this device, unlike listening on the local network. If the port is already in use, choose an available port and update the app to match. Don’t change only one side.

{
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": { "udp": true }
    }
  ]
}

Per-app proxy: choose which apps are covered

On Android, confirm that VPN mode is enabled, then check what the per-app proxy list means. The list may include only apps to proxy, or apps to bypass—don’t rely on the checkmarks alone. Per-app settings let you keep some apps on their usual connection without changing traffic rules system-wide. After saving, reconnect and test within the target app; existing connections may not pick up the new rules immediately. If only one app can’t connect, first check whether it’s excluded, then review its own network settings. Menu names may vary slightly between client versions.

Per-app proxy

Once enabled, check how the selected apps are handled.

Allow connections from the local network

Enable this only when another device needs to connect.

Before connecting, understand the two traffic-handling modes

A system proxy sets the proxy address in the operating system, making it suitable for browsers and desktop apps that follow that setting. It does not force every program to use the proxy: command-line tools, games, and apps that manage their own connections may continue using their usual route. Start by testing in a browser, then check whether other apps support manual proxy settings. If the browser works but a particular program doesn’t, check where that program’s proxy settings are configured before assuming the node is unavailable.

Choose a client for your platform

First check your operating system and processor architecture. The download page lists installers and their requirements.

Windows

Choose v2rayN. The download page offers a desktop edition and the classic WPF edition: the desktop edition uses a cross-platform interface, while WPF retains the classic desktop experience. Read the system requirements for your chosen version before installing. There’s no need to install both.

After installing or extracting the app, keep the program directory structure intact. If it fails to launch, note the error and check the runtime requirements and directory permissions. Before upgrading, save your subscription groups, routing rules, and custom settings so they’re easier to restore.

Go to downloads

macOS

Choose v2rayN and select the installer for Apple Silicon or Intel. Check your Mac’s chip or processor under About This Mac, then use the matching download link. Don’t guess based on the computer’s appearance or purchase year.

Follow the system prompts to authorize the app on first launch. If only your browser works after connecting, check whether other apps use the system proxy. For broader traffic handling, review TUN permissions and compatibility with other network tools.

Go to downloads

Android

For most users, v2rayNG with the Xray core is the first choice. If you need the V2Fly core, consider v2flyNG as an alternative. The arm64 package suits many devices, but check your device’s supported architecture. If you’re unsure, read the universal build notes.

After installing, import a configuration and grant VPN connection permission. If the connection drops frequently in the background, check battery optimization and background activity restrictions. When switching clients, verify protocol support rather than assuming both cores interpret every configuration field the same way.

Go to downloads

Linux

Choose v2rayN, then select the package format for your distribution (deb or rpm) and check the architecture (x64 or arm64). Package format and processor architecture are separate requirements; a matching file extension alone doesn’t guarantee compatibility.

After installation, check that the desktop environment’s proxy settings are working. Apps may handle proxy settings differently, so check terminal tools separately. For your first connection, use a standard proxy mode. Consider virtual network adapter routing only after you’ve confirmed that works.

Go to downloads

See all clients →

V2Ray setup guide: three steps

A client manages connections; it can’t create a working service on its own. Before you begin, get a subscription URL or connection configuration you’re authorized to use.

  1. Import a subscription and select a configuration

    Open the subscription group settings, enter a descriptive group name, paste the complete URL, and save it. Then update the subscription. If you have a single shared link, use the relevant clipboard import option. Once imported, check that the protocol, address, and transport settings were recognized correctly, then select a configuration. Avoid editing multiple fields at once; otherwise, it’s harder to tell whether an issue came from the original configuration or a later change.

    If the update returns no results, check that the URL is still valid and that you have access, then review the client logs for errors. Don’t share subscription URLs like ordinary web links, and don’t upload a complete exported configuration to a public forum.

  2. Choose a mode and confirm which traffic is covered

    On desktop, check the system proxy and routing preset. On Android, select VPN mode, grant system permission, and review the per-app proxy list. Keep the rules simple and clear at first; add them one at a time after confirming the connection works. If you need local network services, test that local addresses connect directly as expected. For specific apps, check that they’re included in the traffic being handled.

    “Global” mode doesn’t remove every other requirement. Whether an app uses the proxy, how DNS resolves, and how rules match all affect the result. Change one setting at a time and note its original value so you can roll back easily.

  3. Start the connection and test each step

    After clicking Start, check for client errors. Then open a site you know should be reachable and test the app you actually use. Connection status, latency tests, and web access provide different kinds of evidence: an open port doesn’t prove the protocol handshake succeeded, and a successful handshake doesn’t guarantee a particular site is accessible. If the results don’t agree, note the error time and relevant log terms, then troubleshoot in order.

    When you’re done, disconnect and confirm that the system proxy has been restored. If your browser still points to a local proxy port after you exit the client, regular websites may stop loading. Check the system proxy settings first instead of switching configurations.

Read the full guide →

The Project V ecosystem and how cores relate

Understand the differences between clients, cores, and remote services before deciding what applies.

Clients manage settings; cores handle connections

Project V is an open-source ecosystem of proxy communication tools, and V2Ray is one of its best-known projects. When people say “install V2Ray,” they often mean installing a client with a graphical interface. The client manages subscriptions, configuration selection, system proxy settings, and logs. The core reads the configuration and handles connections. They work together, but they’re separate programs and may follow different release schedules.

V2Fly continues the community-maintained development of V2Ray, while Xray is a related core project with its own development direction. They share technical roots, but their protocol implementations, transport capabilities, and supported fields are not identical. If a configuration imports successfully but won’t start, check which core the client is using and what the configuration requires—not just the name of the shared link.

Three open-source clients, each for different needs

v2rayN is a desktop client with a graphical interface for managing configurations and support for compatible cores. v2rayNG is for Android and uses the Xray core; v2flyNG offers an alternative based on the V2Fly core. All three have open-source project backgrounds. Check each project’s release notes for current features, dependencies, and licensing. Desktop and Android settings differ, so menu instructions in a guide may not match your current interface exactly.

Open source means the code is available under a license that sets the terms for use and collaboration. It doesn’t mean the client includes a remote service or that every configuration source is trustworthy. Clients, cores, and third-party dependencies may each have separate licenses; review the relevant terms before distributing or modifying them. Pay attention to where configurations come from, subscription permissions, and how sensitive information is stored. Don’t overlook these practical details just because a project is open source.

Keep your settings before updating, then test again

Client updates may change the interface, how configurations are generated, or which cores are supported. Core updates may affect protocol behavior and field restrictions. Read the relevant release notes first, then save your subscription groups, routing rules, and custom configurations. After updating, test common apps with a configuration you’ve already verified. Check local network access, routing rules, and background connections. Avoid making major routing changes in the same session as an upgrade.

This site organizes downloads, getting-started steps, and field references separately. Use the download page to check platforms and package types, the getting-started guide to establish and verify your first connection, and the configuration reference to understand JSON inbounds, outbounds, routing, and DNS. Technical notes cover more specific troubleshooting scenarios. Start with the section that matches your issue; it’s easier to keep useful clues than to repeatedly uninstall and reinstall.

Connection diagnostics and technical notes

Use logs, speed tests, and traffic handling modes to distinguish configuration issues from app behavior.

View all articles →