Clients / Subscription Setup / JSON Config

v2rayNG Download Hubv2rayN and V2Ray clients

Find downloads for open-source clients, steps for importing subscriptions, and JSON configuration references—with guidance on choosing by platform and core.

  • VMess
  • VLESS
  • Trojan
  • REALITY

01 / Client downloads

Choose a V2Ray client for your platform

Check your operating system and processor architecture before choosing an installer. For desktop, see v2rayN; for Android, start with v2rayNG, and consider v2flyNG if you need compatibility with the V2Fly core. The downloads page lists available builds and requirements. This page does not pin a specific release.

Windows

Top desktop pick: v2rayN

v2rayN offers a desktop edition and a classic WPF edition. The desktop edition uses a cross-platform interface, while WPF retains the classic desktop workflow. Both manage profiles and subscriptions. Choose based on system requirements and your preferred workflow; you don’t need to install both for the same subscription.

Before installing, check your system type under About in your system settings. On first launch, import an existing profile, select it, then configure the system proxy. Browsers usually follow the system proxy, while terminals and some apps may need a proxy address configured separately. Launching the client does not mean every app is using the proxy.

When migrating existing settings, back up subscription groups and custom routes first. Keep one known-working setup, then adjust local ports and proxy mode one at a time to make differences easier to trace.

The v2rayN macOS downloads are split between Apple Silicon and Intel. Check your chip or processor under About This Mac, then choose the matching installer. Configurations can be reused across desktop operating systems, but verify local file paths, permissions, and network access on the new system.

After installation, check that your subscription imports correctly, then verify the active profile and listening port. System proxy and TUN mode cover traffic differently; TUN also affects network permissions and routing. For a first setup, start with an access method that’s easy to inspect, verify connectivity, then add rules.

If your system shows a security alert, read it carefully and confirm the installer matches your device architecture. Treat launch failures, permission prompts, and remote connection failures as separate issues.

Android

Recommended for Android: v2rayNG

v2rayNG uses the Xray core and works well for managing common share links and subscriptions. v2flyNG uses the V2Fly core and is an alternative for specific configuration needs. Most recent devices can use arm64. If you’re unsure of your architecture or hit an installation compatibility issue, check the downloads page for the universal build.

After importing a profile, select it and start the connection. Android will ask to set up a VPN connection; this lets the client route app traffic through its local forwarding chain. If another app is already using a similar connection, check for conflicts, per-app proxy settings, routing mode, and battery restrictions on background activity.

In v2rayNG, importing a subscription and importing a single link are separate workflows. Use a subscription group for a set of profiles you’ll update later; use the clipboard or QR code to import a one-off profile.

On Linux desktop, use v2rayN and choose deb or rpm according to your distribution’s package system. Then check whether your processor is x64 or arm64. Package format and processor architecture are separate requirements: a package manager recognizing the file does not guarantee the program will run on your processor.

After installation, import your subscription in the GUI and check the local listener. Desktop environments, browsers, and terminals may handle proxy settings differently, so test each separately. Before enabling TUN, check permissions and system routes; running multiple tools that capture traffic can cause conflicts.

When troubleshooting, keep the default route and port in place, then check the logs for listener or resolution errors. First determine whether the issue is client startup or app traffic routing before changing core settings.

02 / Config section guide

From local inbounds to routing

The GUI creates and manages configuration; the core uses it to forward traffic. Understand where traffic enters and which outbound sends it before adjusting routing and DNS. This helps avoid changing multiple settings incorrectly at once. The snippets below explain individual fields; they are not complete configurations for connecting to a remote server.

v2rayN / Settings → Local listener settings

Inbounds determine how apps connect

A local inbound receives connections from your browser or other apps. GUI clients usually generate this configuration for you. For everyday use, check the listening port in settings, then point your apps to the same address and port. This example listens only on the loopback address, which is suitable for local use. Before exposing it to your LAN, configure access controls. SOCKS and HTTP inbounds work differently, so don’t just change the port and ignore the protocol. If a port is already in use, find the conflicting process rather than repeatedly changing remote settings.

{
  "inbounds": [
    {
      "tag": "socks-in",
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ]
}

03 / Open-source projects and maintenance

What Project V, V2Fly, and Xray each do

Product names, core names, and protocol names refer to different layers. When choosing a client, start with your platform. To check whether a configuration will work, look at core support and server parameters. Open-source projects offer implementations that can be reviewed and continuously improved, but connection results still depend on your configuration, system, and network.

PROJECT V

The ecosystem is more than a single installer

Project V is a useful starting point for understanding the V2Ray ecosystem. Core implementations handle fundamentals such as protocols, connection forwarding, routing, and name resolution. GUI clients build on them with profile editing, subscription management, and system integration. That’s why searches for “V2Ray official site” or “V2Ray client” can lead to project documentation, core references, or GUI apps. This site separates downloads, getting started guides, and field references so these layers are easier to tell apart.

Once you understand these distinctions, it’s easier to narrow down issues. If you can’t find an import option, start with the client workflow. If a log says a field is unrecognized, check core support. If your browser isn’t using the local port, check system proxy settings. Switching GUI clients won’t necessarily fix incorrect remote parameters, and changing protocols won’t replace proper app proxy settings.

XRAY / V2FLY

Related cores, developed independently

V2Fly continues the V2Ray community maintenance effort, while Xray builds on related technology with its own features and configuration capabilities. They share concepts, but new fields, transport combinations, and default behavior are not necessarily interchangeable. For REALITY and XTLS Vision in particular, check the relevant Xray configuration rather than applying snippets to any core. Choose a core based on the features you need and configuration compatibility—not just its name or an assumption that one is always faster.

V2Ray protocols also require server-side support. VMess, VLESS, and Trojan use different authentication methods, while TLS, REALITY, and transport parameters add another set of requirements. Share links usually include these combinations. After importing one, check the address, port, server name, and flow settings. A successful test only confirms that a particular test route works; it doesn’t verify every site or app.

CLIENTS

How three open-source clients differ

v2rayN is for desktop systems, with subscription groups, active profile selection, routing management, and proxy settings. Available cores depend on the release package and client support. v2rayNG is for Android and manages connections using the Xray core and the system VPN interface. v2flyNG is also for Android, but uses the V2Fly core and suits configurations that specifically depend on that implementation. All three are open-source projects; check the relevant release notes and license files before use.

Clients store configuration; they don’t provide a server. Get subscription URLs and authentication details from a trusted source, and protect them according to the terms of use. Subscription links may contain credentials, so don’t post the full URL when troubleshooting. To share an error, include its type, field name, and the steps that triggered it, but remove personal identifiers and authentication details from any URLs.

LICENSE / UPDATE

Licensing, client updates, and subscription updates are separate

Open-source licenses describe the terms for using, modifying, and redistributing source code. GUI clients, cores, and bundled data resources may have different licenses, so the entire ecosystem cannot be assigned a single license. Free use does not change the terms that apply to server resources, network access, or third-party services. This guide explains technical fields; it does not replace project license terms or guarantee that a configuration from any source is suitable.

Updating a client replaces the app and related components; updating a subscription fetches a set of connection profiles; updating routing data changes the categories used by geosite, geoip, and other rules. Each addresses a different need. Back up custom routes and subscription groups before upgrading. Afterward, test a known-working profile before enabling new features one at a time. A successful subscription update does not mean the app has been updated, and changing every setting at once makes troubleshooting harder.

What to check after downloading

When getting started, identify what you’re importing: content beginning with vmess:// or vless:// is usually a share link, while an address used to regularly fetch a set of profiles belongs in subscription management. After importing, select an active profile, choose a traffic access method suited to your platform, then test your browser and other apps that need a connection. Complete each step before moving on to pinpoint whether a failure is due to importing, connecting, or app traffic routing.

If a profile that used to work suddenly fails, check the local listener, active profile, and error logs first, then see whether the subscription has changed. A V2Ray latency test is not the same as loading a webpage: the test target, resolution path, and matched routing rules may all differ. For step-by-step help, see Getting Started; to troubleshoot by symptom, see the FAQ; to edit fields, consult the JSON reference.

04 / Configuration topics

Subscription formats, routing rules, and proxy troubleshooting

These topics cover configuration sources, traffic routing, and app proxy setup. Start with the layer where the problem occurs, then check the result in your client. Converting formats changes how data is represented; it cannot supply missing server parameters. Routing rules can select an existing outbound, but they cannot replace a valid connection configuration.