Android Client & Desktop Setup Guides

V2Ray for Androidv2rayNG Setup Guide

From subscription import to routing, follow the menus to configure v2rayNG, with matching guidance for v2rayN on desktop.

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks
  • Xray / v2fly
  • Subscription Group Settings
    Remarks
    Optional URL
    Enable updates
    Update subscription

    v2rayNG / subscription

    Subscription group

    Save the URL under a group, then update the subscription.

  • Routing Settings
    Domain strategy
    AsIsIPIfNonMatchIPOnDemand
    Preset rules
    Bypass LAN addresses

    v2rayNG / routing

    Routing domain strategy

    Choose whether to match domains or their resolved IP addresses.

  • Per-App Proxy
    Enable per-app proxy
    Bypass mode

    v2rayNG / per-app

    Per-app proxy

    Choose which apps are covered, and check the bypass direction.

  • VPN Settings
    Enable local DNS
    Mode
    VPN
    Proxy only

    v2rayNG / vpn-dns

    Local DNS & VPN

    First identify the traffic entry point, then check the DNS resolution path.

v2rayNG Subscription & Proxy Settings

Import a subscription first, then identify how traffic enters the core, and finally adjust routing. These settings cover different areas—configuration sources, destination matching, system-level traffic handling, app coverage and protocol compatibility. They are not five acceleration options to turn on together.

For your initial setup, use one working subscription and the default routing rules. Once connected, change one setting at a time, reconnect and note what works before and after. The snippets in the pop-ups explain individual fields; they are not complete configurations you can import.

Saving a URL and updating the list are separate steps

Subscription Group Settings
Remarks → custom group name
Optional URL → enter the subscription URL
Save → update subscription

Open Subscription Group Settings in the sidebar, create a group and enter a name in Remarks. Paste the full subscription URL from your provider into the URL field. Save, return to the main screen, update the subscription, then select the imported configuration. A subscription URL is not the same as a single-node share link; add those through the clipboard import option. Groups make subscriptions easier to update and troubleshoot. If the list is empty, check the update result, URL expiry and server response before creating another group with the same name. Subscription URLs may contain credentials, so hide the full URL before sharing screenshots or feedback.

V2Ray Client Downloads by Platform

For Android, start with v2rayNG; for desktop, choose v2rayN. Check your operating system and processor architecture before picking an installer. A client download provides the software, not a subscription or server settings—you will need to obtain those separately. Installing the app alone does not give you a ready-to-connect configuration.

Windows

v2rayN

On the download page, choose the desktop edition or the classic WPF edition. The desktop edition uses a newer cross-platform interface, while WPF retains the classic desktop layout. Button locations may differ, so follow tutorials by feature name rather than matching the window's appearance.

After installation, import a subscription and select a configuration before setting the system proxy. Only apps that honor the system proxy will use it. If an app still connects directly, check whether it uses the system proxy before considering TUN. If you change the local listening port, also check where the system proxy points.

macOS

v2rayN

First, check your chip under About This Mac. Choose the arm64 installer for Apple Silicon or the x64 installer for an Intel processor. Installer format and processor architecture are separate considerations; the file extension alone cannot tell you whether it suits your device.

After launch, complete any permissions requested by the system, then import your configuration. If TUN reports a permission or network interface error, switch back to the system proxy to verify basic connectivity and separate node issues from traffic-handling issues. After changing modes, reopen your test page rather than relying on results from the previous connection.

Android

Recommended: v2rayNG

Most newer phones support arm64, but check your device's actual architecture. If you're unsure, consult the universal build notes. If your configuration requires a v2fly-family core, consider v2flyNG after checking protocol compatibility.

During installation, follow the system prompts to allow installs from the current source. Once installed, open the client and import a subscription. Approve the VPN request on first connect; adjust battery and background restrictions later if needed. Work profiles, cloned apps and other VPN tools can affect which traffic is covered, so note which Android profile you used when testing.

Linux

v2rayN

Choose deb or rpm to match your distribution's package manager, then check whether you need x64 or arm64. A matching package format does not guarantee a matching architecture. Your desktop environment, system components and permissions can also affect launch and traffic handling; platform-specific requirements are listed on the download page.

Start with a graphical client to import a configuration and verify the local proxy endpoint. Then set the desktop environment's system proxy or enable TUN. Some apps manage their own proxy settings, so desktop settings alone do not guarantee that all traffic is covered. If startup fails, read the client log to distinguish missing system dependencies, a port conflict and a configuration parsing error.

When switching devices, migrate your configuration and authorize the new device separately

You can use a subscription from the same provider on multiple devices, but VPN permissions, local ports, system proxy settings and per-app lists must be configured on each one. Do not copy a computer's full listener configuration onto a phone, or treat a phone's app selections as desktop routing rules. After importing, check the address, port, protocol and security settings, then test actual access. Check with your subscription provider to see whether simultaneous connections on multiple devices are allowed.

Browse all clients → Compare the three clients

The Project V, V2Fly & Xray Ecosystems

Clients, cores and protocols are different layers. Understanding the distinction helps you work out whether a feature belongs in the client interface, depends on core support or needs to be confirmed with your configuration provider.

From Project V to the core families

Project V is an open-source network tools ecosystem built around V2Ray. Its core design separates inbound connections, routing, outbound connections and transport settings. Graphical clients organize these settings into menus, while the core reads the configuration and handles connections. When you search for V2Ray for Android, v2rayNG is the Android client you are looking for—not a new server protocol.

V2Fly continues the community development of V2Ray, while Xray developed from related code into its own core and feature set. The two share configuration roots, but their features do not fully overlap. Fields, transport combinations and security options can change as each core evolves. Check your actual configuration requirements for compatibility; the shared V2Ray name does not make the clients interchangeable.

A protocol name is not a complete set of parameters

VMess, VLESS, Trojan and Shadowsocks identify proxy protocols. A node may also specify a transport such as TCP, WebSocket or gRPC, along with security settings such as TLS or REALITY. Check these fields as a set after importing. Simply changing VMess to VLESS or swapping a port will usually not turn one configuration into a working configuration of another type.

For a TLS handshake error, first check the system clock and whether the server domain matches the SNI, then review the specific log message. Disabling certificate verification changes the security assumptions of the connection and can hide the real configuration error. Look up protocol terminology in the glossary; follow the setup guide for the actual steps.

What the three open-source clients do

v2rayNG is for Android and uses the Xray core, with common options for subscriptions, routing and system VPN handling. v2flyNG is also for Android and uses a core from the v2fly family; it suits users who have confirmed their configuration is compatible. v2rayN is for desktop systems and provides a graphical interface for managing configurations, local listeners and system proxy settings. All three are open-source projects. Choose based on your device, required features and configuration compatibility.

Open source means the source code is available under a license, which sets the terms for copying, modification and distribution. The client interface, core and bundled components may each use different licenses, so review them separately before redistributing software. Public code and community collaboration can help explain how things work and track issues, but they do not replace careful permission management, trusted subscription sources or correct security settings.

Update the interface, core and rule resources

Updating a subscription refreshes the configuration list returned by its provider; it does not upgrade the client. Upgrading the client does not make an expired subscription URL valid again. Domain and address classification resources used by routing are a separate layer. When troubleshooting, first identify what you are updating—“Update subscription” is not a universal fix.

Back up essential configuration before upgrading, and store exported files containing credentials securely. After upgrading, test a configuration that worked before, then enable new features one at a time. If anything changes, note the client name, system environment, operating mode and a redacted log excerpt; this is more useful for troubleshooting than simply saying “it won't connect.” For a staged learning path, see the beginner-to-advanced guide.

For connection issues, check the entry point, routing and DNS in that order

First confirm that the client is running and the system VPN or proxy entry point is active. Then check whether the test app is covered. Once the entry point is correct, see whether the destination matches the expected route; finally, check DNS resolution and the remote handshake. A page opening in your browser only confirms that this particular request worked—it does not mean every app, domain or protocol follows the same path.

If a LAN device cannot connect, start by checking private-address rules and traffic coverage. If the subscription list is empty, check the update result. If the core fails to start, read the configuration parsing log first. These issues occur at different stages and need different troubleshooting steps. See Frequently Asked Questions for symptoms and their corresponding entry points. There is no need to reinstall the client repeatedly before identifying the cause.

V2Ray Configuration & Troubleshooting Notes

Browse by issue: Choosing Nodes covers what makes a node suitable; port conflicts concern local listeners; certificate errors concern handshake settings. Note which stage the issue occurs at, then open the relevant guide instead of treating different causes as the same connection problem.

How to Choose a V2Ray Node: Compare Latency, Traffic Multipliers, Locations & Protocols

Understand latency tests, traffic multipliers and location labels in subscription lists. Compare VLESS, VMess and Trojan features to find a node that suits everyday use.

First check whether a latency test measures connection setup or actual access, then confirm what the traffic multiplier means for billing. A location label alone does not predict performance for every destination. Compare nodes on the same network against the same destination, and check that your device supports the protocol combination.

Read the node selection guide →

V2Ray TLS Handshake and Certificate Errors: Check the System Clock and SNI

Start with the device clock, server certificate name and SNI. Distinguish certificate validation failures from connection timeouts. Check the security settings provided with your configuration; do not treat disabling verification as a default fix.

If the same node behaves differently across devices, compare clock synchronization, system certificates and the fields imported on each device. Keep the original error message to determine whether the issue is certificate trust, name matching or an earlier network connection stage.

Read the TLS troubleshooting guide →

v2rayN Local Port in Use: Troubleshoot Port 10808 Conflicts and Change the Listener Port

Find the process using the local listening port, then change the corresponding port in v2rayN settings and check the system proxy. A local listener failure does not mean the remote node is down.

Local and server-side ports serve different purposes. After changing your computer's listening port, update any apps that use that proxy endpoint. Changing only the remote port in a subscription will not free the local port and could make a working node configuration fail.

Read the port troubleshooting guide →