mrkeyoor.com_
Sat 17 Oct 13:34 UTC
Self-Hostedevaluationupdated 13 Oct 2026

v2rayNG review

v2rayNG is an Android app that connects your phone to a proxy server you supply, using Xray or v2fly to handle the connection. Its release notes and much of its support discussion are in Chinese, while the README includes English documentation. It gives you control over connection profiles and routing without supplying the server or a managed VPN subscription.

+289stars / 7d
Verdict

Our v2rayNG Go library build succeeded in 67 seconds, while its 18-second test command executed 0 tests, so the run establishes buildability without validating the Android connection. Use it if you already operate a compatible proxy endpoint and want an Android client with editable profiles and routing. Choose the release channel deliberately, and check root-mode compatibility before relying on prerelease 2.3.11.

We ran it

Lab card: what happened when we ran v2rayNGScreenshot of v2rayNG (v2rayng.2dust.link)
Install✓ · 33s169 packages
Build✓ · 67s
Tests✓ · 18s0 passed · 0 failed of 0 (go test)
Repo938 files~174,209 lines of source · 34.4 MB · 2 CI workflows

Answers from our run

Does v2rayNG build from source?

Dependencies installed in 33 seconds (169 packages), and the build succeeded in 67 seconds. We cloned commit 6fe3893 into a clean Debian container with 3 CPUs and no project-specific setup.

Do v2rayNG's tests pass?

Yes. The project's own test command finished in 18 seconds and reported 0 passed, 0 failed (go test).

Who should not use v2rayNG?

Anyone expecting a ready-to-use VPN account: this repository supplies an Android client, and its configuration import code expects server profiles.

What are the alternatives to v2rayNG?

Clash Meta for Android, sing-box for Android, v2rayN. Our v2rayNG Go library build succeeded in 67 seconds, while its 18-second test command executed 0 tests, so the run establishes buildability without validating the Android connection.

Setup3/5Go library builds, but Android setup and a server remain separate
Docs3/5English README exists; detailed release notes are mainly Chinese
Community5/563,902 stars, October pushes, and current issue and PR discussion
Maturity3/5Signed releases and active upkeep; root-mode regression remains open

Who it’s for

Android users who already have a compatible proxy endpoint and want to manage its connection profiles themselves.
Operators distributing proxy configurations to phones, including people using their own server.
Android developers comfortable maintaining a Kotlin app alongside its Go core library.
Readers who can work with Chinese release notes when the English README leaves a configuration question unanswered.

Who it’s NOT for

Anyone expecting a ready-to-use VPN account: this repository supplies an Android client, and its configuration import code expects server profiles.
Root-mode users who need IPv6 to work on kernels without IPv6 NAT support: open issue 6310 reports startup failure in prerelease 2.3.11 on that specific setup.
Operators relying on skipped certificate verification: release 2.2.6 removed the allowInsecure preference and directs users toward certificate fingerprints or server changes.
Developers expecting the Android wrapper alone to guarantee a current core: the README warns that the bundled AAR may contain an outdated core.
Desktop users: the README directs Windows, Linux, and macOS readers to the separate v2rayN project.

Setup reality

Our sandbox installed commit 6fe3893's Go project in AndroidLibXrayLite in 33 seconds, adding 169 packages. The build succeeded in 67 seconds. The test command succeeded in 18 seconds, with 0 passed and 0 failed out of 0 tests. That result covers the library path, with no evidence of Android app execution.

Using the app requires a compatible server address and its connection credentials or an imported profile. A subscription URL can supply profiles; prerelease 2.3.11 also documents custom HTTP headers for subscription requests. Our container had no secrets, so the successful library build says nothing about whether your endpoint connects.

The Android app requires API 24 or newer. Its source lives under V2rayNG, with an Android Studio or Gradle wrapper route documented separately from the Go library. The README warns about a possibly outdated bundled AAR. VPN permission matters on Android, and root mode has additional kernel constraints, including the IPv6 startup report in issue 6310.

You supply the proxy server and its connection details

v2rayNG manages an Android phone's connection to a proxy endpoint through Xray or v2fly. You bring the server details. The configuration code parses profiles for VLESS, VMess, Shadowsocks and other supported formats, and can share configurations through the clipboard or QR codes. That suits someone who already operates a proxy or receives connection profiles from an operator. Downloading the app alone won't give you a working remote endpoint.

The Go library installation added 169 packages to the developer environment. It supplied no VPN account. A usable profile still needs a server address and the authentication details appropriate to its protocol. A subscription can supply those profiles. The 2.3.11 prerelease documents custom HTTP headers for subscription requests, useful when an operator requires authentication. English README sections exist, but release notes and much of the issue discussion are Chinese.

What happened when we ran it

Our sandbox installed commit 6fe3893 in 33 seconds and built its Go project in 67 seconds on October 7, 2026. The project we ran lives in AndroidLibXrayLite. We used golang:1.24-bookworm in a fresh Debian container with 3 CPUs and 8 GB of RAM, without secrets or elevated privileges. Installation added 169 packages. Both steps succeeded, which gives a contributor concrete evidence that this library path can get through setup and compilation.

The test command succeeded in 18 seconds, reporting 0 passed and 0 failed out of 0 tests. No executed test cases means no behavioral coverage demonstrated by that result. The lab scan recorded 2 CI workflow files, no Dockerfile and no tests directory. Those directory signals describe the scan, not proof that every component lacks checks. This run supplies no Android device result, connection throughput measurement or battery measurement.

Android development still includes the core library

v2rayNG's minimum Android API level is 24, according to its application configuration. The README points contributors to Android Studio or the Gradle wrapper under V2rayNG and warns that the core bundled in the AAR, Android's library archive, may be outdated. It also points to separate Go library projects for producing that archive. Before changing the interface or packaging a fork, identify which core your app actually contains.

The checkout we measured contained 938 files, about 174,209 lines of source and 34.4 MB of files. That is a useful picture of the source tree you'll be navigating, without predicting the installed app's size. GitHub identifies Kotlin as the repository's primary programming language, while our executable lab path used Go. Anyone adopting this as a development base should expect to work across that boundary. A successful library compilation leaves Android packaging and device behavior to verify separately.

Certificate verification changes can break old profiles

Release 2.2.6 removed the allowInsecure preference and directs users toward certificate fingerprints or changes on the server. If your connection depends on ignoring certificate validation, treat this as a migration requirement before updating. The release also added a way to obtain a certificate's SHA-256 value manually. That gives operators a concrete configuration route, but selecting the correct certificate remains their responsibility.

The 18-second Go test command executed 0 tests, so it provides no assurance that an old profile survives those certificate changes. The same limit applies to routing data. The README says the built-in geoip and geosite download feature needs a working proxy and documents manual imports. If the automatic download can't get through your network, you'll need that manual route. These are operational prerequisites the library build cannot settle for you.

Root mode has a specific IPv6 startup report

Open issue 6310 reports that prerelease 2.3.11 fails to start root mode with IPv6 enabled on a kernel lacking IPv6 NAT support. The attached log shows ip6tables failing to initialize its NAT table, followed by setup rollback and root-mode shutdown. The reporter says IPv4 works and the previous prerelease works on the same setup. This is a specific compatibility report, with logs, rather than evidence that every Android connection fails.

The unprivileged container behind the 67-second build couldn't establish whether privileged Android routing works on your phone. Its 3 CPUs and 8 GB of RAM describe the measurement setup, not mobile hardware requirements. Root mode and hotspot sharing, introduced in the stable release notes, require root access. If either feature is the reason you're choosing v2rayNG, check it on the intended device and kernel before making that phone your everyday connection path.

October activity continues beyond the July stable release

GitHub reported 63,902 stars and 32 open issues and PRs on October 13, 2026. The last push was October 11, and issue discussion continued through October 13. The latest stable release endpoint returned July's 2.2.6, while 2.3.11 was an October 11 prerelease with the Compose interface migration and subsequent fixes. That combination shows continuing maintenance. It also makes the stable-versus-prerelease label more useful than assuming the newest numbered download is the default recommendation.

The 33-second library installation makes source exploration approachable, but your existing configuration should drive the client choice. Clash Meta for Android fits Clash.Meta profiles. sing-box for Android follows the sing-box platform and calls itself experimental. For a computer, the project's own recommendation is v2rayN. I'd choose v2rayNG for an Android phone with an existing compatible endpoint, then verify that profile and routing on the phone before trusting it away from home.

Alternatives

ProjectWhat it isPick it when
Clash Meta for AndroidAn Android interface for the Clash.Meta rule-based proxy core.pick this instead when your existing profiles and routing rules belong to the Clash.Meta ecosystem.
sing-box for AndroidThe experimental Android client for the sing-box proxy platform.pick this instead when you already maintain sing-box configurations and accept its experimental client status.
v2rayN gh↗A desktop proxy client for Windows, Linux, and macOS.pick this instead when the connection belongs on your computer rather than an Android phone.

Sources

  1. v2rayNG repository and bilingual README
  2. Android application configuration
  3. Profile parsing and sharing implementation
  4. Stable release 2.2.6 and certificate migration
  5. Prerelease 2.3.11
  6. Issue 6310: root mode and missing IPv6 NAT support
  7. Clash Meta for Android
  8. sing-box for Android

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →