Desktop Client · Subscriptions & Routing

V2Ray Windows Client v2rayN Download & Setup

Follow the menus to import subscriptions, configure routing, and set up TUN—starting with choosing a client.

  • VLESS
  • VMess
  • Trojan
  • Shadowsocks
  • REALITY

Choose a Client

Choose a Download

Check your operating system and processor architecture before choosing a client. Use v2rayN on desktop; for Android, start with v2rayNG, or consider v2flyNG if you need the V2Fly core.

Windows

Recommended for Desktop

Choose v2rayN. The desktop version uses a cross-platform interface, while the classic WPF edition is designed for Windows. Review the system requirements and edition notes on the download page before choosing an installer. The interface framework and proxy core serve different purposes.

After the first launch, import a subscription and choose a server, then enable “Automatically configure system proxy.” This is a good starting point for regular browser use. Consider TUN mode only if an app you need does not use the system proxy.

Go to downloads Windows client

macOS

Choose the v2rayN desktop version. Open “About This Mac” and check whether your device has an Apple chip or an Intel processor, then choose the Apple Silicon or Intel download accordingly. Match the installer architecture to your device; appearance and purchase year are not reliable indicators.

The basic steps for subscriptions, servers, and routing are similar, but follow the network permission prompts shown by your current operating system. The desktop interface may differ slightly from Windows; if a menu has moved, look for the setting with the same name.

Go to downloads macOS client

Android

Xray Core

Start with v2rayNG, which uses the Xray core. v2flyNG uses the V2Fly core and is an alternative for compatible configurations. Most recent phones use arm64; if you are unsure of your device architecture, check system information and the download page’s universal-build notes.

Import a subscription, choose a server, start the connection, and approve the system VPN prompt. Android handles traffic differently from a desktop system proxy. If the connection drops when the screen locks, check battery optimization and background activity permissions before changing the client configuration.

Go to downloads Android client

Linux

Choose the v2rayN desktop version. Check the deb or rpm download for your distribution’s package format, then confirm whether your system uses x64 or arm64. Install dependencies through your system’s package manager, and avoid packages that are not intended for your distribution.

After launching, verify the client’s local listener, then configure the desktop environment or the app’s own proxy settings. Proxy handling varies across desktop environments. For virtual network adapter routing, check permissions, routes, and DNS separately rather than following instructions for another operating system.

Go to downloads Linux client
View all clients →

Settings & Capabilities

v2rayN Feature Map

Understand protocols, cores, subscriptions, and traffic entry points as separate parts. Select a topic on the right to see its settings and limitations.

Configuration Input → Core Processing → Traffic Flow

VLESS / VMess / TrojanProtocol Xray / sing-boxCore Subscription Group geosite:cn → direct System Proxy TUN ModeTraffic Capture

Choose VLESS, VMess, Trojan, or Shadowsocks based on the configuration provided by your server. The protocol name alone does not determine whether a connection will work. After importing a link, check the address, port, authentication details, and transport settings. For REALITY, also verify the server name, public key, and related fields. REALITY is a security-layer technology, not a standalone proxy protocol. v2rayN brings these fields together in a graphical interface, but compatible combinations still depend on core support and server settings. Keep the original configuration before making changes, and replace your everyday profile only after confirming the updated one works.

Continue reading: Split Routing Guide · TUN Permissions & Troubleshooting. The diagram shows how features relate; it does not prescribe a fixed sequence.

First Connection Checklist

From Subscription Import to Connection Test

For your first setup, change only what you need. Get one configuration working in basic proxy mode before adding routing exceptions or virtual adapter capture. This makes it easier to tell whether an issue comes from the subscription, server, app settings, or routing.

  1. Import a Subscription and Choose a Server

    Launch v2rayN, open “Subscription Group Settings,” add a group, and enter the subscription URL provided by your source. Save it, choose “Update Current Subscription (without proxy),” and wait for the list to refresh. Then select the server you want and make it active. If you have a single shared link, you can also use an import option such as “Import batch URLs from clipboard”; menu names may vary by version.

    Know the difference between a subscription URL and a server share link: a subscription retrieves and updates a set of configurations, while a share link usually describes one connection. If the list is empty, check the selected group, make sure the URL is complete, and review any update errors. If the list has entries but none connect, check the active server and logs. Avoid repeated imports, which can create duplicate configurations.

  2. Configure System Proxy and Basic Routing

    Under “System Proxy,” select “Automatically configure system proxy,” then choose a suitable preset under “Routing.” The system proxy tells apps that support it which local endpoint to use. Routing determines the outbound path for requests handled by the core. These are separate settings: “Global” routing does not make every program use the proxy automatically.

    Start by testing the basic connection in a browser. Command-line tools, games, and apps with their own network components may need separate proxy settings or TUN mode. Do not run multiple clients that modify the system proxy at the same time. When you are finished, choose “Clear System Proxy” so apps do not keep trying to use a local port that is no longer listening.

  3. Check Results and Error Logs

    Test destinations expected to connect directly and through the proxy, then check whether the results match your routing settings. Also test the apps you actually use. Opening one webpage successfully does not prove that other apps, DNS, or UDP traffic follow the same path. To confirm the outbound route, compare the connection details shown by the destination service with the client logs.

    When an error occurs, check in this order: core started → local port listening → app using the proxy → server reachable → DNS and routing rules match. Change one setting at a time and record the results. Before sharing troubleshooting information, remove subscription URLs, authentication details, and personal browsing records; include only the error details needed for diagnosis.

Read the Full Guide →

Open-Source Projects & Maintenance

Project V, V2Fly & Xray Core

Keep the project ecosystem, proxy cores, and graphical clients distinct. Downloading a client is just the first step; understanding how the components fit together helps avoid mistakes when choosing a setup or troubleshooting.

How Cores and Interfaces Work Together

Project V is an open-source ecosystem built around proxy communication tools, with V2Ray as one of its major projects. V2Fly continues development related to V2Ray, while Xray has developed into an independent core. They share some technical history, but their feature development, configuration fields, and compatibility are not always the same. When choosing a configuration, check which core is actually running instead of relying on “V2Ray” as a catch-all label.

The core handles connections, transport, resolution, and routing. A graphical client provides an interface for managing servers, updating subscriptions, and configuring system settings. v2rayN, v2rayNG, and v2flyNG are separate graphical clients, not simply the same app renamed for different operating systems. Desktop and Android platforms also differ in system capabilities, so permissions, traffic entry points, and background behavior vary.

A protocol name alone does not describe a complete configuration. A connection also depends on transport, security, authentication parameters, and server-side requirements. Seeing the same VLESS or Trojan label does not mean every core and parameter combination is interchangeable. Keep the original settings from your provider, choose a core that meets the compatibility requirements, and use the logs to identify specific fields. This is more effective than repeatedly trying options based on protocol names alone.

Choose by Client

v2rayN: Designed for desktop use, with subscription groups, active servers, local listeners, and routing managed in one place. On Windows, choose the desktop or classic WPF edition based on your interface preference and system requirements; for macOS and Linux, use the appropriate desktop download. For a framework comparison, see the Avalonia vs. WPF Edition Guide. Interface differences do not directly indicate differences in protocol support.

v2rayNG: Designed for Android and uses the Xray core, making it a good starting point for Android setup and usage guides. The first time you connect, approve the system VPN permission prompt. Long-term use may also require adjusting background activity restrictions. If problems occur only after the screen locks or you switch apps, check app permissions and battery settings before investigating network or configuration changes.

v2flyNG: Also designed for Android, it uses the V2Fly core and is an alternative when a configuration requires that core. Do not assume its fields, import results, or protocol support exactly match v2rayNG. When switching clients, test one configuration known to be compatible before moving your usual groups, so differences are easier to identify.

Understand Open-Source Licenses by Component

All three clients are maintained as open-source projects. Clients, proxy cores, and dependencies may each use different open-source licenses. Before using, modifying, or redistributing them, read the license terms and notices for each component. Open source makes code and development available for review; it does not mean every third-party subscription, server, or network environment is equally reliable.

The client being free to use is separate from the availability of server resources. Installing a client does not provide a working server or generate a valid subscription. Connection details, authentication parameters, and service availability depend on the configuration source. Keep the source information you need for your records, but never publish full subscription URLs in public pages, support screenshots, or shared documents.

Check Four Types of Updates Separately

Track changes to the client, core, subscription, and routing data separately. A client update may move menus; a core update may affect parameter compatibility; a subscription update may replace server configurations; and routing data updates may change category matches. Handle one type of change at a time to make it easier to restore the last working setup if something goes wrong.

Before updating, back up essential settings and note custom rules and local listener options. After restoring a configuration, recheck the active server, system proxy, and TUN status. Backups may contain authentication details, so store them securely. If a problem starts after an update, review the error logs and settings differences before deciding whether to roll back; reinstalling every component is rarely the first step.

Keep a short routine checklist: confirm the subscription update, check the active server, test your usual apps, then verify direct connections and local network access. When adding routing exceptions, note their purpose and match criteria, and remove rules you no longer need. For a step-by-step learning path, see the Beginner-to-Advanced Guide. If a setting is unfamiliar, check its meaning in the Concept Reference before changing it.

Technical Notes

Client Settings & Targeted Troubleshooting

Once the basic connection works, read the guide that matches your issue. Handle permissions, background activity, and traffic capture according to the relevant operating system.

View All Articles →