Client downloads · Setup guides

V2Ray Resource Hub v2rayN client

Start with a client for your platform, then configure subscription import and routing in order. If the connection fails, use the logs to troubleshoot each step.

  • VMess
  • VLESS
  • Trojan
  • Shadowsocks
  • REALITY

Choose a client for your platform

For desktop, start with v2rayN; for Android, start with v2rayNG. Choose an installer that matches your operating system and processor architecture. The client manages settings, but connecting also requires valid server details or a subscription URL.

Windows

v2rayN · RecommendedDesktop / WPF

For a new installation, consider the Desktop edition first. If you prefer the classic interface, see the WPF edition. They use different UI frameworks, so choose based on system requirements and your existing setup—not just a change in appearance.

Before downloading, check your device architecture under System Information. After the first launch, locate the subscription groups and server list, then confirm the core starts correctly. If prompted to install runtime dependencies, follow the instructions on the download page. Do not mix program files from different versions.

If you have used another proxy tool, first check where the system proxy currently points. Exit the old client before testing the new one to reduce port conflicts and repeated changes to proxy settings.

macOS

v2rayNApple Silicon / Intel

Choose an installer based on the chip shown in About This Mac: arm64 for Apple Silicon or x64 for Intel. Once you have the right build, follow the system prompts to install and open the app for the first time.

System proxy permissions and TUN permissions are separate. Set up a standard system proxy connection first and confirm the server works before trying virtual network interface mode. If the first authorization attempt fails, check the relevant item in System Settings rather than reinstalling repeatedly.

If the app starts but your browser cannot connect, check the system proxy address and port, then see whether another network tool is also handling traffic. For security prompts, see the blog's macOS installation and permissions guide.

Android

v2rayNG · Recommendedv2flyNG · Alternative

v2rayNG uses the Xray core and is a good place to start with common share links and subscription imports. v2flyNG follows the V2Fly core path and can be an alternative for compatible configurations. Choose based on the features your configuration needs, not the client name.

Most recent devices use arm64. If you're unsure which architecture you have, check your device information and see whether a universal installer is available. After importing a configuration, select a server and approve the VPN connection prompt when you connect.

If the connection often drops in the background, check battery optimization and background activity limits. Wi-Fi and mobile data may use different DNS and network settings. Test each separately and note what happens before changing client settings.

Linux

v2rayNdeb / rpm

Choose a deb or rpm package based on your distribution, then check whether your device uses x64 or arm64. The desktop app manages settings in a graphical environment; after installation, confirm its proxy settings match the client.

Some apps use the system proxy, while others have their own proxy settings. A working browser connection does not mean every app is using the client. First test with an app known to support proxies, then check how other apps route their traffic.

TUN also requires consideration of permissions, existing routes, and DNS management. Avoid changing multiple network components at once. Save the current settings and make one change at a time so you can identify what affects the connection.

v2rayN features

Treat configuration as five separate steps: get the server details, choose the core, then configure traffic entry and outbound rules. The overview below explains the settings; it does not change the client on your device.

Import and update subscriptions

→

Subscriptions make it easier to maintain server configurations in bulk and keep nodes in sync. Add the URL and a recognizable name under Subscription Groups, then update and check that the group appears in the server list. Import individual share links from the clipboard instead; these are separate workflows. Before your first connection, try updating directly if needed. If the URL is only reachable on certain networks, adjust accordingly. If an update fails, check the error, URL expiration, and system time before reinstalling the client. Subscription URLs may contain access credentials, so don't share screenshots that reveal them.

Subscription Groups → Add subscription URL → Update subscription

Quick start: import, connect, verify

Get one configuration working reliably before adding routing rules or a virtual network interface. Check the result at each step. If something fails, troubleshoot that stage before moving on to avoid conflating installation, subscription, and network issues.

STEP 01

Install and import a configuration

On the download page, choose an installer for your platform and architecture. Install it and open the client: use v2rayN on desktop and start with v2rayNG on Android. Menu names may change, but the basic steps—manage subscriptions, select a server, and connect—remain the same.

For a subscription URL, add it under Subscription Groups and update. For a single share link, use the clipboard import option. After importing, check that the group and server types look right, and look for an empty list or parsing errors. Then select one configuration to test.

The client does not generate working servers automatically. Subscriptions are maintained by their providers; expired URLs, exhausted quotas, or configuration changes can all affect connectivity. Treat subscription URLs like access credentials. If you ask for help, redact sensitive parts of the URL first.

STEP 02

Choose a mode and connect

On desktop, select a server, then set the system proxy automatically so apps that support it can use the client. On Android, approve the system VPN prompt when connecting. For your first test, use the client's default routing configuration rather than adding custom rules right away.

Check the logs for core startup failures, listening port conflicts, or protocol parameter errors. A change in the connect button only shows that the client has started its connection workflow; it doesn't confirm that traffic works. If another proxy app is running, pause it first to prevent the two clients from changing traffic entry settings.

Server selection, system proxy, and routing mode are three separate settings. After changing servers, confirm that the app is using the current client's listening port. After changing routes, make sure the test request actually reaches the client.

STEP 03

Verify the connection and record results

Open a reliable page in your browser, then test the apps you use every day. Check whether domains resolve, connections establish, and corresponding requests appear in the access logs. If the browser works but a particular app doesn't, first check that app's proxy settings and traffic entry.

When something goes wrong, change one thing at a time: try a known working configuration or a different network, but don't change the core, routing, and DNS together. Note the error, steps taken, and time it occurred; this is usually more useful than repeatedly running speed tests.

Once the connection works, add routing rules or enable TUN gradually. When you're done, check that the system proxy has been restored. Back up your configuration before updating the client, then retest the same destinations to help identify what changed.

The Project V ecosystem and client maintenance

Understanding the three layers—client, core, and protocol—is more useful than memorizing where a button is. They handle configuration management, connection processing, and communication rules, respectively; none can replace another.

Project V, V2Fly, and Xray

Project V is an open-source proxy ecosystem built around V2Ray, with core capabilities for protocols, transports, DNS, and routing. V2Fly continues V2Ray's community-led development; Xray has grown from related technical foundations into its own core with additional capabilities. The two have a shared background but differ in features and configuration, so they are more than just different names for the same thing.

Clients organize these capabilities in a graphical interface, making subscriptions, server lists, and common settings easier to manage. The core is what actually handles connections. So a link being recognized by the interface doesn't mean the selected core supports every parameter it contains. If a connection fails, check both the import result and the core logs.

Understand protocols, transports, and security layers separately. VMess, VLESS, Trojan, and Shadowsocks are protocol names commonly found in configurations; WebSocket and gRPC describe transport methods; TLS and REALITY relate to connection security. Whether a combination works depends on what both the server configuration and the client core support—not just the protocol label.

Open-source projects and the three clients

v2rayN manages desktop configurations, with downloads for Windows, macOS, and Linux. It suits users who want to manage subscriptions, switch servers, and adjust proxy and routing settings in one place. v2rayNG is for Android and follows the Xray core path; v2flyNG is also for Android, but uses the V2Fly core path. All three are open-source projects. Choose based on your device platform and configuration compatibility needs.

Open source means the code can be read, used, and maintained under the applicable license. Clients, cores, and bundled dependencies may use different licenses; refer to each project's license text for the specific terms. Free client software and subscription services are separate: the software's pricing does not determine a server provider's terms, quota, or expiration date.

This site organizes downloads and setup guides for these three clients. A client name is not a measure of connection quality: the experience also depends on server resources, network conditions, DNS, routing rules, and app behavior. To evaluate a setup, keep test conditions consistent, check the logs, and distinguish local configuration issues from remote service problems.

Configuration maintenance

Back up before updating

Client updates, core updates, subscription updates, and routing rule data updates are separate operations. The first two affect program behavior; subscription updates change server details; rule data updates affect domain and address classification. When something goes wrong, identify which layer changed most recently instead of resetting everything at once.

Before upgrading, save your current configuration and important settings, and read the release notes. After upgrading, test the same server and apps that worked before making other changes. Keep a record of settings you can refer back to, so you don't miss anything when restoring your setup.

Troubleshooting steps

Logs and specific symptoms

Break down “can't connect” into specific symptoms: did the subscription update fail, did the core fail to start, did DNS lookup fail, or did the connection drop after it was established? Note what happened, then check the relevant step. An incorrect system clock, port conflict, or expired server details can all cause similar connection failures.

Before sharing logs, remove subscription URLs, account details, and server credentials. The error type and essential context are usually enough. For common issues, see the FAQ. To learn the basics chapter by chapter, read the complete guide.

Recent setup and troubleshooting guides

Choose an article based on the issue you're facing: macOS installation permissions, using FakeDNS with TUN, or common beginner questions. These articles cover specific scenarios. For a first installation, follow the setup guide to establish a basic connection.