Open-Source Client · Setup Guides

V2Ray for Windows Download v2rayN and Setup Guide

From importing subscriptions to routing traffic, follow the actual settings to connect, then verify proxy routing to check where traffic goes.

  • Subscription management
  • System proxy
  • TUN mode

Configuration index / From setup to traffic flow

v2rayN settings index

Get one node connected first, then enable routing and traffic interception features one at a time. The snippets below explain how settings map to core configuration; they are not complete configurations to paste in as-is. Fields differ between cores, and interface labels may change slightly with client updates.

Subscription Groups › Subscription Group Settings › Add

Manage subscription URLs separately from the server list

In “Subscription Group Settings,” enter a name and subscription URL, then save and update it from “Subscription Groups.” First try updating without a proxy; use a proxy only if the URL requires one. Managing subscriptions is easier than importing links one by one, but a successful update only means the content was retrieved—not that every server will connect. After importing, select a server, set it as active, and test the connection. Subscription URLs often contain access credentials, so don’t share them in public screenshots or paste them into untrusted conversion sites.

{
  "outbounds": [
    { "tag": "proxy", "protocol": "vmess" }
  ]
}

This snippet shows only the Xray outbound structure; the server address, user information, and transport settings come from the imported subscription.

View the subscription import guide →

A first-time setup checklist

Save your existing configuration first. Then import a subscription, select an active server, test the connection, and enable the system proxy last. Verify the result after each step so a failed subscription update, a server connection failure, and a browser that isn’t using the proxy don’t get mistaken for the same problem. If you’ve changed several settings already, close other proxy tools, disable TUN, and return to a minimal setup with one server and the system proxy.

A real connection test attempts to reach a test target through the server. Tcping mainly checks connectivity to the server’s port. They test different things: an open port does not mean the protocol handshake succeeded, and a temporarily unreachable test target does not necessarily mean the server is down. For a meaningful comparison, keep the network, target, and test method consistent. Then test the sites you actually need to use instead of judging the whole experience by a single number.

Follow the complete guide to make your first connection →

Choose a client / OS and processor

Client downloads for four platforms

Use v2rayN on desktop and generally choose v2rayNG for Android. Consider v2flyNG if you need the V2Fly core. The download page lists installers by operating system and processor. You’ll still need valid server details after installing a client; the installer does not include a working server or generate a subscription for you.

Windows

v2rayN is available as a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic window layout. Choose based on the system requirements listed on the download page; interface differences don’t indicate differences in server performance.

Close any running older instance before installing to prevent two processes from competing for the same local port. Before migrating, back up your subscription groups and routing settings, keep a working configuration, and then verify the new setup. Handle TUN permission issues separately after the system proxy connection works.

Go to downloads Windows client

macOS

v2rayN downloads are available for Apple Silicon and Intel. Check the chip or processor under “About This Mac” and choose the matching installer; don’t guess based on the computer’s appearance or purchase year.

When you first open the app, follow the system’s security prompts to confirm the app source and required permissions. Start connection testing in a browser, then check the system proxy settings. If you need TUN, also check network permissions and other network extensions. If the connection fails after switching Wi-Fi networks, check the default network route again.

Go to downloads macOS client

Android

Start with v2rayNG using the Xray core; v2flyNG is an alternative for the V2Fly core. Most devices use arm64. If you’re unsure of your architecture or installation fails, check the download page for the universal build.

After importing a server, approve the system’s VPN connection request. The system usually allows only one VPN connection at a time, so enabling another traffic interception app may disconnect the current one. If the connection works in the foreground but drops when the screen locks, check battery optimization and background restrictions before troubleshooting the server.

Go to downloads Android client

Linux

v2rayN offers deb and rpm packages for x64 and arm64. First confirm your distribution’s package manager, then check the processor architecture. Package format and architecture are separate requirements.

Desktop system proxy settings may not carry over to terminal apps. Even if a browser connects successfully, check whether the target app reads the desktop proxy settings or needs its own proxy configuration. TUN also affects network permissions and routing; if you’re managing the system remotely, prepare a way to restore the original network settings first.

Go to downloads Linux client

Choose an installer and migrate your settings

A single subscription can contain multiple protocols, but a client or core may not support all of them. If some servers fail to import after installation, check the reported protocol or transport fields before deciding whether to change the client or core. Don’t repeatedly reinstall the entire system to fix one server, and don’t overwrite routing settings you haven’t backed up.

When migrating, keep only the data you need. Subscription URLs, server links, and exported configuration files may contain account information; remove it before sharing logs. Use the home page to compare clients and follow setup guides. The download page keeps installers and update information in one place, so you can choose the right version for your current system.

View all clients →

Open-source ecosystem / How clients and cores differ

Project V, V2Fly, and Xray

Graphical clients
v2rayN / v2rayNG / v2flyNG

Connection cores
Xray / V2Fly

Configuration
Inbounds / Outbounds / Routing / DNS

Project V provides ecosystem context; it isn’t a single installer

V2Ray originated in Project V, a modular suite of network tools. In everyday searches, “V2Ray client” can refer to both the graphical interface and the connection core. In practice, it helps to understand these as separate layers: the interface saves subscriptions, organizes servers, and generates configuration; the core reads that configuration and handles inbounds, routing, and outbounds. Whether a browser can connect also depends on whether the operating system and app send requests to that proxy entry point.

This separation explains a common issue: the main window and subscription list may work even when the core fails to start because a port is already in use or the configuration is invalid. So an open app does not necessarily mean the proxy is working. To troubleshoot, check the core logs first, then verify the local listener and system proxy, and finally test access to a website. This avoids the cycle of repeatedly reinstalling the app.

V2Fly and Xray share roots, but their configurations have diverged

V2Fly continues the community-maintained V2Ray project, while Xray is a separate core that grew out of V2Ray. They share technical roots but have evolved independently in protocol support, transport capabilities, and configuration details. Shared concepts can help you read a configuration, but they don’t mean every new field is interchangeable. For differences in protocol features, traffic sniffing, or DNS behavior, check the core you’re actually running.

v2rayN’s multi-core management brings different configurations together in one graphical interface, but available combinations still depend on the client implementation and core support. When choosing a core, prioritize the protocols and transport settings your server requires, then check whether your routing rules are compatible. If a connection fails after a core switch, check configuration compatibility before assuming the server is unavailable.

Open-source licenses and roles of three clients

v2rayN, v2rayNG, and v2flyNG are all open-source graphical clients. v2rayN and v2rayNG use the GPL-3.0 license, as does v2flyNG; the V2Fly and Xray cores use MPL-2.0. Clients and cores are separate projects, so check each license’s scope independently. Open source means the code is available for review under the applicable license terms; it doesn’t guarantee that every third-party repackaging is maintained to the same standard.

Desktop clients focus on subscription management, the system proxy, and multi-core configuration. Android clients also rely on the system VPN interface and background execution policies. v2rayNG is designed for Xray core configurations, while v2flyNG provides the V2Fly core option. Choose based on your device, protocols, and existing configuration—not a presumed speed ranking from the client’s name. Performance also varies with the server and network.

Verify client, core, and routing data updates separately

Client, core, and routing data updates address different issues. A client update may move settings around, a core update may affect protocol behavior, and updated classification data may change how domains or IP addresses match routing rules. Before updating, note the active server, system proxy status, and routing preset, and save any configuration you need. Afterward, test the existing connection before enabling new features.

Avoid changing the subscription, core, DNS, and entire routing setup during the same troubleshooting session. Keep a working baseline and change one category of settings at a time so results remain comparable. If only certain domains fail after an update, check routing matches and DNS. If the core won’t start, check the logs for invalid fields and port conflicts. For ongoing issues, work through the symptom-based sections on the troubleshooting page.

Go to v2rayN troubleshooting →

Setup notes / Recent articles

DNS setup and connection troubleshooting

First determine whether the server failed to connect or requests are taking the wrong route after connecting. These three recent guides cover DNS leaks, split DNS routing, and websites that won’t load. Check the logs, system proxy, and routing results step by step instead of relying only on the client’s status indicator.

View all articles →