Convert Figma logo to code with AI

2dust logov2rayNG

A V2Ray client for Android, support Xray core and v2fly core

34,334
5,300
34,334
33

Top Related Projects

A platform for building proxies to bypass network restrictions.

66,794

A GUI client for Windows, support Xray core and v2fly core and others

A shadowsocks client for Android

18,907

An unidentifiable mechanism that helps you bypass GFW.

Quick Overview

v2rayNG is an Android client for V2Ray, a platform for building proxies to bypass network restrictions. It provides a user-friendly interface for configuring and managing V2Ray connections on Android devices, allowing users to access blocked content and enhance their online privacy.

Pros

  • Easy-to-use interface for managing V2Ray configurations
  • Supports multiple protocols and encryption methods
  • Regular updates and active community support
  • Open-source, allowing for transparency and community contributions

Cons

  • May require technical knowledge to set up and configure properly
  • Performance can vary depending on the server and network conditions
  • Limited documentation for advanced features
  • Potential legal concerns in some jurisdictions regarding VPN usage

Getting Started

To get started with v2rayNG:

  1. Download the latest APK from the releases page on GitHub.
  2. Install the APK on your Android device.
  3. Open the app and tap the "+" button to add a new server configuration.
  4. Enter the server details manually or import a configuration file.
  5. Select the newly added server and tap the "V" button to connect.

For more detailed instructions and advanced usage, refer to the project's wiki on GitHub.

Competitor Comparisons

A platform for building proxies to bypass network restrictions.

Pros of v2ray-core

  • Core functionality and protocol implementation
  • More extensive documentation and community support
  • Better performance and resource efficiency

Cons of v2ray-core

  • Lacks a user-friendly GUI
  • Requires more technical knowledge to set up and configure

Code Comparison

v2ray-core (Go):

type User struct {
    Level uint32
    Email string
}

type Account struct {
    Id      string
    AlterId uint32
}

v2rayNG (Kotlin):

data class User(
    var level: Int = 0,
    var email: String = ""
)

data class Account(
    var id: String = "",
    var alterId: Int = 0
)

Summary

v2ray-core is the core implementation of the V2Ray protocol, offering robust functionality and performance. It's well-documented and supported by a large community. However, it lacks a built-in GUI and requires more technical expertise to use.

v2rayNG, on the other hand, is an Android client for V2Ray. It provides a user-friendly interface for configuring and using V2Ray on mobile devices. While it may not offer the same level of performance or flexibility as the core implementation, it's more accessible for average users.

The code comparison shows similarities in data structures between the two projects, with v2ray-core using Go and v2rayNG using Kotlin, reflecting their different target platforms and use cases.

66,794

A GUI client for Windows, support Xray core and v2fly core and others

Pros of v2rayN

  • More feature-rich and customizable for Windows users
  • Supports a wider range of protocols and configurations
  • Better suited for advanced users with more technical knowledge

Cons of v2rayN

  • Limited to Windows platform, less accessible for mobile or cross-platform users
  • May have a steeper learning curve for beginners
  • Potentially more complex interface compared to v2rayNG's mobile-friendly design

Code Comparison

v2rayN (C#):

public static int RunAsAdmin(string arguments)
{
    Process process = new Process();
    process.StartInfo.FileName = Utils.GetExePath();
    process.StartInfo.Arguments = arguments;
    process.StartInfo.UseShellExecute = true;
    process.StartInfo.Verb = "runas";
    process.Start();
    return process.Id;
}

v2rayNG (Kotlin):

fun startV2Ray() {
    if (!v2rayPoint.isRunning) {
        val result = v2rayPoint.runLoop()
        if (result) {
            MessageUtil.sendMsg2UI(this, AppConfig.MSG_STATE_START_SUCCESS, "")
        } else {
            MessageUtil.sendMsg2UI(this, AppConfig.MSG_STATE_START_FAILURE, "")
        }
    }
}

The code snippets demonstrate different approaches to starting processes or services, reflecting the distinct platforms and languages used in each project.

A shadowsocks client for Android

Pros of shadowsocks-android

  • Simpler and more lightweight protocol, potentially faster for basic usage
  • Longer development history and wider adoption
  • More straightforward setup process for users

Cons of shadowsocks-android

  • Less advanced features compared to v2rayNG
  • Limited protocol support (primarily Shadowsocks)
  • May be less effective against sophisticated network censorship

Code Comparison

shadowsocks-android:

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
    if (intent?.action == Action.CLOSE) stopRunner()
    return Service.START_NOT_STICKY
}

v2rayNG:

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
    when (intent?.action) {
        Action.SERVICE_START -> startV2Ray()
        Action.SERVICE_STOP -> stopV2Ray()
    }
    return super.onStartCommand(intent, flags, startId)
}

Both projects use Kotlin and have similar service lifecycle management. However, v2rayNG appears to have more granular control over service actions, reflecting its more feature-rich nature compared to the simpler shadowsocks-android implementation.

18,907

An unidentifiable mechanism that helps you bypass GFW.

Pros of trojan

  • Simpler and more lightweight protocol, potentially faster
  • Designed to be undetectable, mimicking HTTPS traffic
  • Cross-platform support with implementations in multiple languages

Cons of trojan

  • Less feature-rich compared to v2rayNG's multi-protocol support
  • Smaller community and ecosystem
  • Limited built-in obfuscation options

Code Comparison

v2rayNG (Kotlin):

override fun onBind(intent: Intent): IBinder? {
    return VpnService.prepare(this)
}

trojan (C++):

int main(int argc, char *argv[]) {
    Log::log_with_date_time("Welcome to trojan " + Version::get_version(), Log::FATAL);
    return run_service(argc, argv);
}

v2rayNG is an Android client for the V2Ray core, offering a user-friendly interface and support for multiple protocols. It's written in Kotlin and focuses on mobile usage.

trojan is a lightweight proxy tool designed to bypass network restrictions. It's implemented in C++ and aims for simplicity and undetectability.

Both projects serve similar purposes but differ in their approach and target platforms. v2rayNG offers more flexibility with multiple protocols, while trojan focuses on a single, efficient protocol designed to be undetectable.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

v2rayNG

A V2Ray client for Android, support Xray core and v2fly core

API Kotlin Version GitHub commit activity CodeFactor GitHub Releases Chat on Telegram

Get it on Google Play

Telegram Channel

github_2dust

Usage

Geoip and Geosite

  • geoip.dat and geosite.dat files are in Android/data/com.v2ray.ang/files/assets (path may differ on some Android device)
  • download feature will get enhanced version in this repo (Note it need a working proxy)
  • latest official domain list and ip list can be imported manually
  • possible to use third party dat file in the same folder, like h2y

More in our wiki

Development guide

Android project under V2rayNG folder can be compiled directly in Android Studio, or using Gradle wrapper. But the v2ray core inside the aar is (probably) outdated.
The aar can be compiled from the Golang project AndroidLibV2rayLite or AndroidLibXrayLite. For a quick start, read guide for Go Mobile and Makefiles for Go Developers

v2rayNG can run on Android Emulators. For WSA, VPN permission need to be granted via appops set [package name] ACTIVATE_VPN allow