/V2RayX

GUI for v2ray-core on macOS

Primary LanguageObjective-CGNU General Public License v3.0GPL-3.0

V2RayX: A simple GUI for V2Ray on macOS

Build Status

What is V2Ray?

READ THIS: Project V2Ray.

YOU SHOULD READ V2RAY'S OFFICIAL INSTRUCTION BEFORE USING V2RAYX!

Other V2Ray clients on macOS: V2RayU. (Not related to or endorsed by authors of this repo. USE AT YOUR OWN RISK.)

Download V2RayX

Download from Releases. (compiled by travis-ci.org).

By Homebrew-Cask.

brew cask install v2rayx

How to build

V2RayX.app is built by running one of the following commands in your terminal. You can install this via the command-line with curl.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Cenmrev/V2RayX/master/compilefromsource.sh)"

or step by step:

git clone --recursive https://github.com/Cenmrev/V2RayX.git

open V2RayX.xcodeproj and use Xcode to build V2RayX.

How does V2RayX work

V2RayX provides a GUI to generate the config file for V2Ray. It includes V2Ray's binary executable in the app bundle. V2RayX starts and stops V2Ray with launchd of macOS.

V2RayX also allows users to change system proxy settings and switch proxy servers on the macOS menu bar.

As default, V2RayX will open a socks5 proxy at port 1081 as the main inbound, as well as a http proxy at port 8001 as an inboundDetour.

V2RayX provide three modes:

  • Global Mode: V2RayX asks macOS to route all internet traffic to v2ray core if the network traffic obeys operating system's network rules.
  • PAC Mode: macOS will determine the routing based on a pac file and some traffic may be routed to v2ray core.
  • Manual Mode: V2RayX will not modify any macOS network settings, but only start or stop v2ray core.

Options in menu list Routing Rule determine how v2ray core deals with incoming traffic. Core routing rules apply to all three modes above.

auto-run on login

Open macOS System Preferences -> Users & Group -> Login Items, add V2RayX.app to the list.

manually update v2ray-core

replace V2RayX.app/Contents/Resources/v2ray with the newest v2ray version from v2ray-core repo. However, compatibility is not guaranteed.

Uninstall

V2RayX will create the following files and folders:

  • /Library/Application Support/V2RayX
  • ~/Library/Application Support/V2RayX
  • ~/Library/Preferences/cenmrev.V2RayX.plist

So, to totally uninstall V2RayX, just delete V2RayX.app and the files above. :)

Acknowledge

V2RayX uses GCDWebServer to provide a local pac server. V2RayX also uses many ideas and codes from ShadowsocksX, especially, the codes of v2rays_sysconfig are simply copied from shadowsocks_sysconf with some modifications.

Donation

If Project V2Ray or V2RayX helped you, you can also help us by donation in your will. To donate to Project V2Ray, you may refer to this page.

Disclaimer

This tool is mainly for personal usage. For professional users and technique support, commercial software like proxifier is recommended. Please refer to #60.

The developer does not major in CS nor Software Engineer and currently is busy with grad school courses. So V2rayX will not be updated frequently. Users can replace V2RayX.app/Contents/Resources/v2ray with the newest v2ray-core downloaded from https://github.com/v2ray/v2ray-core/releases.

The developer currently does not have enough time to add more features to V2RayX, nor to merge PRs. However, forking and releasing your own version are always welcome.