Client selection · Protocol settings · English guides

V2Ray Beginner's Guide Start with v2rayN

Download v2rayN View the guide Choose a client, then check protocol compatibility.
Set up your first connection through the graphical interface.

Choose an open-source client for your platform, follow the actual settings to import subscriptions and configure routing, and understand where each protocol and core is supported.

VMess / VLESS TLS / REALITY Xray / V2Fly
Edit server — VLESS Settings example
PROTOCOL VMess VLESS Trojan Shadowsocks SOCKS
SERVER
Addressexample.com
Port443
User IDyour-uuid
Flowxtls-rprx-vision
Transporttcp
SECURITY
Transport securityreality
SNIwww.example.com
Fingerprintchrome
PublicKeyyour-public-key
ShortIdUse the value provided by your server
SpiderXUse the value provided by your server
Core
Xrayv2fly
Allow connections from the local network: Off Enable Mux: Off TUN mode: Off
This is a static interface illustration, not a working server configuration. Use the actual values provided by your server for every field.

This editor is for identifying fields only. example.com, your-uuid and your-public-key are examples and will not connect to a server. Menu names may vary slightly as client interfaces change.

CLIENT / PLATFORM

Choose a client for your platform

For desktop, start with v2rayN. On Android, consider v2rayNG first, then choose v2flyNG if its core better fits your needs. Your platform determines the installer type; your processor architecture determines the specific file. Check both.

Windows

v2rayN is available as a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while the WPF edition retains the familiar Windows-style interface. Before installing, check the system requirements and choose the file that matches your computer's architecture. If nothing opens when you double-click the app, check its runtime requirements and permissions for the extracted folder. Avoid repeatedly overwriting the same configuration directory.

Go to downloads →

macOS

Choose the v2rayN installer for your Mac's processor. Check About This Mac: Apple Silicon uses arm64, while Intel uses x64. After installation, import your configuration and check that the system proxy works. If you already use another proxy app, quit or disable its network takeover mode first to prevent multiple apps from changing your network settings.

Go to downloads →

Android

v2rayNG uses the Xray core and supports configurations that require features such as VLESS and REALITY. v2flyNG is an alternative based on the V2Fly core. Most recent phones can use arm64; if you're unsure, check the universal build's documentation. The first connection requires system VPN permission. If the connection drops in the background, check battery optimization and background activity permissions.

Go to downloads →

Linux

v2rayN offers deb and rpm installers for x64 and arm64. Choose the package format for your Linux distribution, not just your desktop environment. Once the graphical interface starts, test your browser connection with the system proxy. If you need a virtual network interface, check the required permissions and existing network management rules before enabling TUN.

Go to downloads →

Installing a client and getting a server configuration are separate steps. The client manages settings, starts the core, and configures a local proxy; connecting also requires a valid subscription URL or server details. Subscriptions often contain access credentials, so store them only on trusted devices. Don't share the full URL when troubleshooting.

When moving a configuration from another device, first check its protocol, transport, and security settings. Similar client names don't guarantee identical feature support. REALITY configurations in particular require a compatible core and matching parameters; changing the protocol dropdown to VLESS alone won't convert a configuration.

View all clients →

SETTINGS / REFERENCE

Settings reference

First, distinguish server parameters from how your device handles traffic. Server parameters must match the server; traffic handling determines which apps use the proxy. The common tasks below show where to find each setting. The snippets only display option names and won't change your device settings.

Manage subscriptions with groups

A subscription URL retrieves server configurations in bulk; it is not a proxy address to enter in your browser. Open Subscription group settings, enter a recognizable name and the subscription URL, save, then update the subscription and choose a server from the group. If you have an individual share link, you can also use “Import batch URLs from clipboard.” Subscriptions make it easier to keep settings in sync, but an update may overwrite existing entries. Save a copy first if you need to preserve manual changes. After importing, you still need to select an active server and configure the local proxy. Seeing entries in the list doesn't mean traffic is being routed through them.

See how to import a subscription →
Subscription group settings
AliasEveryday use
Subscription URLhttps://example.com/sub
Subscription groupUpdate subscription

Option names help you find settings; they aren't universal recommendations. Record the original value before making changes, and change one setting at a time. If the connection already works, keep the existing configuration where possible and verify what the new setting changes.

QUICK START / THREE STEPS

Three steps to your first connection

Start with the simplest working setup, then add routing rules and traffic capture. The menus differ between desktop v2rayN and Android v2rayNG, but the sequence is the same: import a configuration, choose an outbound server, and test the connection.

  1. Import a subscription or share link

    Get a valid subscription URL or individual server link. In v2rayN, open Subscription group settings, save the URL, and update it; individual links can be imported from the clipboard. In v2rayNG, use the Add menu and choose the appropriate import option. After importing, check the protocol, server address, and port. Make sure the security and transport settings are intact.

    If the list is empty, check whether the URL failed to load or the response format is unsupported. A subscription URL opening in your browser doesn't guarantee that the client can parse its contents. Keep the error message and check the provider's client-specific instructions. Don't enter a subscription URL in the server address field.

  2. Choose a server and traffic handling method

    Set the server you want to use as active and choose a suitable routing preset. On desktop, start with automatic system proxy configuration. On Android, approve the system VPN request when you first connect. Quit other network tools so you can tell which client is handling the connection.

    “Global routing” and “routing traffic from all apps” are not the same thing. Routing applies only to connections that reach the core; some apps may ignore the system proxy. Consider TUN only after the basic connection works and you need broader traffic capture. This helps keep permission issues separate from incorrect server settings.

  3. Test the connection with real traffic

    Open a website you use regularly and make sure its content loads. Then check the client logs for DNS resolution or handshake errors. A test result reflects only a specific probing method and can't replace a real-world test. If a probe fails, don't delete the configuration immediately; first check whether the probe target matches your routing rules.

    If the client says it connected but websites won't load, check the system proxy, local port, DNS, and system time in that order. Back up your configuration before restoring defaults, and note the last known working state. Changing settings one at a time makes the cause easier to find and lets you undo changes later.

Read the full guide →

PROJECT V / CORE / CLIENT

Open-source ecosystem and protocol choices

V2Ray, V2Fly, Xray, and v2rayN refer to different layers of the ecosystem. Distinguish the project, core, client, and protocol before deciding what to download or which server type to select.

PROJECT

Project V

CORE

V2Fly / Xray

CLIENT

v2rayN / v2rayNG / v2flyNG

Project V: the foundations of modular proxy tools

The Project V ecosystem builds on tools such as V2Ray, organizing inbound and outbound connections, routing, transport, and DNS into modular components. For users of graphical clients, this means one interface can manage different server types instead of requiring a separate app for each protocol. The client turns menu actions into a core configuration, and the core handles the actual connection. Understanding this division helps distinguish two checks: whether the interface saved your settings and whether the core supports them.

Projects in the ecosystem evolve independently, so menu names, default settings, and supported transports can change. Treat tutorial steps as a guide to finding features, and check the current client interface and server documentation for the final word. When you encounter an unfamiliar field, first identify whether it relates to protocol identity, transport, or security. Don't swap fields just because their names sound similar.

V2Fly and Xray: shared roots, independent development

The V2Fly community maintains V2Ray-related cores, while Xray has developed its own feature set from shared technical foundations. The two have overlapping protocol and configuration support, but that doesn't mean every field, extension, or default behavior is the same. For example, a REALITY configuration requires a core that explicitly supports it, along with compatible flow, fingerprint, public key, and other settings. Even if a feature appears in the graphical interface, check which core is actually running.

When migrating a configuration, keep the working entry and check what the destination core supports. Recognizing the same share-link format only means the importer understood some of the information; it doesn't guarantee a successful connection. If the server provider documents a specific core, follow that guidance. If you don't need an extension, there's no need to switch cores just because the name has changed.

Three clients: interface management and core execution

v2rayN is for desktop systems and brings server management, subscription updates, routing, and local proxy settings together. v2rayNG is for Android and uses the Xray core; v2flyNG is also for Android, with a different core and use case. All three are open-source clients. Open source means their code is available under each project's license; license terms, dependencies, and distribution requirements still need to be considered separately. Don't assume one project's license applies to the entire ecosystem.

When choosing a client, platform compatibility and protocol support matter more than appearance. On desktop, v2rayN lets you manage multiple server types in one interface. On Android, choose v2rayNG or v2flyNG based on the core required by your configuration. Installing multiple clients won't combine their subscriptions automatically, and you must check system proxy or VPN status separately.

VMess, VLESS, and REALITY: understand the settings layers

VMess and VLESS are proxy protocols; Trojan and Shadowsocks have their own authentication and transport conventions. REALITY is a transport security method and is commonly paired with VLESS, so these names aren't interchangeable options in a single menu. To identify a configuration, check its protocol, transport, and security settings together instead of relying on the share link's title.

Choosing the fastest option isn't as simple as comparing protocol names. Server load, network path, handshakes, connection multiplexing, and device resources all affect real-world performance. On mobile, background operation and network switching can also affect battery life and connection stability. Start with a combination explicitly provided by the server and fully supported by the client, then compare performance under the same conditions.

Subscription compatibility: import is only the first step

A subscription may contain a collection of individual share links or use a client-specific configuration format. Clients can interpret extended parameters differently, and conversion may omit flow, security, or transport settings. If only some entries stop working after an update, compare the original parameters with the logs to determine whether the import was incomplete, the core lacks support, or the server details have changed.

A subscription doesn't give a client support for additional protocols. Before copying the same URL into another client, check whether the server documentation provides a compatible format. If you share a screenshot for troubleshooting, hide the subscription URL, user ID, and authentication details. The protocol name, menu path, and sanitized error message are usually enough.

Update in order: back up, then verify what already works

Graphical clients and cores may update separately. A client update can change menus or how configurations are generated; a core update can affect feature support or field handling. Before updating, save subscription groups and manual configurations, and note your current proxy and routing settings. After updating, test a server that already worked before checking new features. Don't change the client, core, routing rules, and DNS all in the same test.

When something goes wrong, use the specific error to guide your checks. If startup fails, check the runtime environment. If the core rejects the configuration, check field compatibility. If the connection fails, check server parameters. If websites won't load, check traffic capture and routing. This separates “the app won't open,” “the server won't connect,” and “the app isn't using the proxy” into distinct problems instead of prompting repeated reinstalls.

Read the technical reference on protocols and cores →

NOTES / RECENT

Technical notes

Find a solution by symptom. Get the basic connection working before trying TUN, FakeDNS, or other Advanced Setup. Each note focuses on a specific setting or troubleshooting scenario.

View all articles →

Not sure what a term means? Check the quick glossary. Need to troubleshoot by symptom? See the FAQ.