Configuration overview · Interface preview

Import a configuration, then enable the proxy

The client organizes configurations and runs the core; it does not provide a server or subscription. Start with a subscription link from a trusted source, update the configuration, select an entry, then enable the traffic mode suited to your platform.

“Update subscription” and “Start service” are separate actions. The first fetches remote configuration; the second runs the local core. A successful update does not mean a connection has been established.

Subscription groupsRouting settingsSystem proxy
Configuration sourceSubscription group settings
Import methodImport from clipboard
Subscription actionUpdate current subscription
Desktop traffic routingSet system proxy automatically

Configuration workspace

Subscriptions, routing, and core settings

Identify the configuration source, routing decisions, and traffic entry point before changing individual settings. The examples below illustrate settings; they are not an interactive client window. Menu locations vary by client.

Subscription groups keep configurations from different sources organized separately. Add a group in the client, enter a recognizable label and subscription URL, save it, then update and select an entry from that group. The label is only for identification; it does not change server settings. Unlike pasting configurations one by one, a subscription lets you update them centrally when the source changes parameters, but it may also overwrite fields managed remotely. Back up any manual changes you need to keep. Subscription links often contain access credentials, so do not include them in public screenshots or submit them to online conversion tools.

Troubleshoot one layer at a time

If a subscription updates but websites will not load, check whether traffic is reaching the local client before replacing the subscription. Confirm that the core starts successfully, then check the local port used by the system proxy, followed by routing and DNS. Change one setting at a time and keep the previous configuration so you can tell what made a difference. Multiple clients controlling the system proxy, a browser with its own proxy extension, or another program occupying the listening port can all make the interface status differ from actual behavior.

When you see a “global proxy” option, first check where it appears: a global system proxy setting, a global routing mode in the client, and TUN traffic routing are different things. The first controls how apps send traffic to the proxy; the routing mode determines what happens to requests once they enter the client. If a term is unclear, check the glossary. For step-by-step instructions, follow the configuration guide to set up a minimal working configuration.

Platform options

V2Ray client downloads by platform

Choose your operating system first, then your processor architecture. For desktop, see v2rayN; on Android, choose v2rayNG or v2flyNG based on the core your configuration requires. Download packages are listed in the download center; version numbers are not shown on the home page.

Windows

Recommended for desktop: v2rayN

v2rayN offers a desktop edition and the classic WPF edition. The desktop edition uses a cross-platform interface, while the WPF edition retains the classic desktop experience. Choose based on your system requirements and preferences; there is no need to run both clients at once.

Before installing, check your processor architecture and runtime requirements. For portable use, extract the program to a writable directory with a clear path; do not run it from inside the archive. For your first test, use the system proxy. Once your browser connects, consider TUN and other advanced options.

macOS

v2rayN

v2rayN provides separate downloads for Apple Silicon and Intel processors. Check your chip in “About This Mac,” then choose the matching package. Processor architecture and subscription protocol are separate concerns; changing packages does not convert your configuration.

After installation, follow the system prompts to grant app permissions. When enabling the system proxy, confirm that the proxy settings for your current network service are updated. If only some apps fail, check whether they read the system proxy. If you need TUN, follow the guide to check permissions and virtual interface status.

Android

Recommended for Android: v2rayNG

v2rayNG uses the Xray core and suits configurations that require its protocol support. v2flyNG uses the V2Fly core and is an alternative when your configuration calls for it. Most modern devices use arm64. If you are unsure, check your device information or choose the universal build.

On first launch, approve the system VPN connection request. Android typically allows only one app to use this VPN interface at a time, so stop other VPN apps before testing. If the connection drops when the app goes into the background, check battery optimization and background activity restrictions instead of repeatedly importing the same subscription.

Linux

v2rayN

v2rayN provides deb and rpm packages for x64 and arm64. The package format depends on your distribution’s package system, while the architecture depends on your device. Both must match; the file extension alone does not tell you whether a package is compatible.

Desktop environments, browsers, and apps may handle system proxy settings differently. Use the graphical client to set up a subscription and local listener, then check the proxy settings in the app you want to use. TUN requires additional permissions and a compatible network environment; verify each setting if you already use virtual network interfaces.

View all clients →

Traffic entry ≠ routing rules

Proxy modes have two layers

Apps first send requests to the client through the system proxy or a virtual interface. The core then routes them according to its rules. Enabling TUN does not guarantee that every request will use a remote proxy, and routing rules do not automatically send traffic from every app into the client.

For testing, choose a specific destination and check whether the corresponding request appears in the logs. If no request appears, check the traffic entry method first. If a request is logged but the connection fails, check server settings, DNS results, and outbound rules. Whether requests appear also depends on the current log level.

Configuration check order
  1. 01
    App trafficSystem proxy / TUN / VPN mode
  2. 02
    Core routingDomain rules / address rules / default outbound
  3. 03
    Destination handlingDirect / proxy / block

Quick start

From subscription import to connection test

Set up your first connection in three stages. Start with a working baseline, then add routing rules, automatic updates, or TUN. See the full guide for detailed menus and platform-specific steps.

  1. Install a client and get a subscription

    Install the client that matches your operating system and architecture, then get a subscription link or single configuration from a trusted source. A subscription URL is not the same as a regular information page URL; avoid copying extra spaces, line breaks, or explanatory text. If you already have a configuration, export a backup first and check whether it includes subscription groups, routing, and app settings. A file containing nodes alone is not a complete migration backup.

    A client can manage configurations, but it cannot generate valid server settings on behalf of the configuration provider. The address, port, user ID, and transport options should all come from the same complete configuration. Do not combine fields from unrelated guides.

  2. Import a subscription and select a configuration

    Add a group in subscription management, save the URL, and update it. Check that configuration entries appear. For a single share link, use the client’s import option. Select the entry you plan to use and confirm that its protocol is supported by the current core. If an update fails, first check that the subscription URL is still valid and that your network can retrieve it. Do not delete all your settings right away.

    If the subscription format is not recognized, ask the provider which output formats are supported. A converter can only handle formats it supports; it cannot restore missing parameters or add protocol features the core does not support. Avoid unknown online conversion services for URLs that contain credentials.

  3. Enable traffic routing and test each step

    On desktop, enable the system proxy first; on Android, approve the VPN request. Then visit a specific test destination. A running status only means the local service is active; check the destination and logs as well. If it fails, narrow down the cause in this order: core startup, local port, app traffic entry, DNS, routing, and server configuration. Do not switch several groups of settings at once.

    When you finish testing, use the client’s stop and clear system proxy options to disconnect. If your browser still points to a local port that is no longer active, regular websites may not load. To restore access, check your system network settings before restarting the client.

Read the full guide →

Project V · V2Fly · Xray

Open-source ecosystem and client roles

Client names, core names, and protocol names refer to different layers. Choose by platform first, then by the protocols and core capabilities your configuration requires. These names do not all refer to separate connection services.

Project V and the core families

Project V is the open-source ecosystem behind a range of network proxy tools, with V2Ray as one of its key projects. V2Fly continues V2Ray-related development, while Xray has built its own protocol extensions and implementation direction on shared foundations. Both projects evolve on their own timelines. Similar names do not mean their configuration fields always match, and their relationship cannot be summed up as a simple “new version replaces old version.”

For users, the differences come down to specific capabilities: which protocols, transports, and security features a configuration uses, and whether the current core accepts its parameters. For example, if a configuration uses REALITY, confirm that your Xray core and client support it. If the logs report an unknown protocol or field, check compatibility rather than assuming the network is unstable. See the Comparison guide for more details.

What the three graphical clients do

v2rayN is for desktop environments, bringing configuration lists, subscription groups, routing, and system proxy controls together in a graphical interface. v2rayNG is for Android, uses the Xray core, and routes app traffic through the system VPN interface. v2flyNG is also for Android and offers the V2Fly core. All three are open-source clients, but their interfaces, menu labels, and backup formats are not interchangeable by default.

v2rayN is the recommended desktop client because the desktop guides on this site are built around it. On Android, start with v2rayNG, then consider v2flyNG if your core requirements call for it. Choose an alternative for a specific reason, such as a configuration that requires particular core behavior—not to run multiple clients at once and stack their effects. Multiple clients competing for proxy settings or the VPN interface only make troubleshooting harder.

Keep open-source licenses and configuration sources separate

Open source means a project’s code is available under the conditions set out in its license, which may cover viewing, use, or redistribution. Refer to each project’s license for the specific terms. A client interface, core, and bundled components may use different licenses; the license for one component does not describe the entire release package. Using an open-source client does not automatically provide a subscription or server service.

The subscription provider supplies the configuration, the client reads and runs it, and website documentation explains the concepts and steps. Keep these roles distinct. Subscription links, QR codes, and exported files containing user IDs should be treated as sensitive configuration data. When sharing logs for troubleshooting, include only the relevant error context and remove server addresses, user IDs, and subscription credentials. Do not post complete access details in public discussions.

Update the client and keep an eye on core changes

Client updates may change the interface, configuration generation, or system integration; core updates may change protocol support and parameter handling. Before upgrading, note your current working mode and back up your settings. After upgrading, test your existing configuration first, then try new features once the baseline works. If something goes wrong, comparing startup logs and setting changes is more useful than reinstalling repeatedly.

Subscription updates, rule data updates, and software updates are separate actions. A subscription update refreshes remote configuration; a rule data update changes what rules match; a software update replaces the client or related runtime components. Find installers in the Download Center. For installation, migration, and platform-specific issues, see the cross-platform installation and setup guide. If you already know what is going wrong, check the FAQ before deciding what to do next.

Configuration guides

Installation steps and core concepts

Finish the basic setup first, then read the guides that address your current needs. Platform guides cover installation and setup order; core comparisons help with compatibility choices; advanced articles explain how specific options work and where their limits are.

View all articles →

Download v2rayN