Git Product home page Git Product logo

v2rayx's Introduction

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.

v2rayx's People

Contributors

bryant1410 avatar cenmrev avatar chandler-lu avatar chihosin avatar ldpmt avatar neothecapt avatar nicholascw avatar specter119 avatar ttimasdf avatar und3fin3 avatar zqmever avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

v2rayx's Issues

When will V2RayX support TLS?

Seems Vmess over TLS can enhance security of communication. Do you have any plans to support it? Can't wait to enjoy it on my Mac

Http伪装

V2RayX GUI界面似乎没有办法修改http伪装的header(或者根本不支持http伪装?)

V2RayX cannot work for ftp?

I have installed lastest v2rayx in macbook, config as global mode, it works well for visiting websites such like google.com. _But it seems like not work for ftp_.

my shell command:
curl -f -L -- "ftp://ftp.videolan.org/pub/videolan/contrib/x86_64-apple-darwin10/vlc-contrib-x86_64-apple-darwin10-latest.tar.bz2" > "vlc-contrib-x86_64-apple-darwin10-latest.tar.bz2"

Download speed very slow, _the speed is the same as v2rayx is closed. I use this command in my vps in japan, the download speed is very very high._

Then I try to download it in chrome, _the chrome says: ERR_NO_SUPPORTED_PROXIES_

After that, I change v2rayx config to "auto mode", add "videolan.org" to pac.js, and restart v2rayx. Chrome can download than ftp url, but speed is still very slow. Seems like v2ray(x) works not well for ftp. The speed should be very good.

Easy Switching among TLS servers or non-TLS servers

On version 0.7.9(1) TLS is supported, This is nice.
However, every time I switch to another TLS server, I have to change the Server Name in the "transport settings". Or if I switch to another non-TLS server, I have to un-check the "Use TLS" option in the "transport settings".

It seems that the "transport settings" are global settings, which doesn't seems to be a good idea, as different servers would have different settings. It would be better for the transport settings attached to each server and not being a global one.

[bug] 目前预发布的版本 http 代理端口访问不到

bug效果如下:

export http_proxy="http://127.0.0.1:8001"; export HTTP_PROXY="http://127.0.0.1:8001"; export https_proxy="http://127.0.0.1:8001"; export HTTPS_PROXY="http://127.0.0.1:8001"
curl myip.ipip.net
curl: (7) Failed to connect to 127.0.0.1 port 8001: Connection refused

切换回旧版本工作正常

建议集成proxifier的功能

开了V2RayX后,我往往还需要打开proxifier才能让更多app上网。

比如iTerm2,Google Photos备份app。

如果能集成proxifier的功能,就完美了。

v2rayx无法连接

我用v2ray加config.json正常,但是用V2RayX无法连接,能不能帮忙看下我哪里设置错了?
V2RayX的配置如下(IP隐去了)
image

v2ray的config.json如下(IP隐去了)

{
  "log": {
    "loglevel": "info"
  },
  "inbound": {
    "port": 1088,
    "listen": "127.0.0.1",
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": true,
      "ip": "127.0.0.1"
    }
  },
  "outbound": {
    "protocol": "vmess",
    "settings": {
        "vnext": [
            {
                "address": "my.ip.address",
                "port": 19870,
                "users": [
                    {
                        "id": "a6e75c57-982b-4be3-9c01-f66f60a02d78",
                        "alterId": 100
                    }
                ]
            }
        ]
    },
    "streamSettings": {
      "network": "tcp",
      "tcpSettings": {
        "connectionReuse": true,
        "header": {
          "type": "http",
          "request": {
            "version": "1.1",
            "method": "GET",
            "path": ["/"],
            "headers": {
              "Host": ["www.baidu.com", "www.sogou.com/"],
              "User-Agent": [
                "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
                        "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46"
              ],
              "Accept-Encoding": ["gzip, deflate"],
              "Connection": ["keep-alive"],
              "Pragma": "no-cache"
            }
          },
          "response": {
            "version": "1.1",
            "status": "200",
            "reason": "OK",
            "headers": {
              "Content-Type": ["application/octet-stream", "application/x-msdownload", "text/html", "application/x-shockwave-flash"],
              "Transfer-Encoding": ["chunked"],
              "Connection": ["keep-alive"],
              "Pragma": "no-cache"
            }
          }
        }
      }
    },
    "mux": {
      "enabled": true
    }
    
  },
  "outboundDetour": [
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    }
  ],
  "dns": {
    "servers": [
      "8.8.8.8",
      "8.8.4.4",
      "localhost"
    ]
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "rules": [
        {
          "type": "chinasites",
          "outboundTag": "direct"
        },
        {
          "type": "field",
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "outboundTag": "direct"
        },
        {
          "type": "chinaip",
          "outboundTag": "direct"
        }
      ]
    }
  }
}

经由GUI配置并启用后无法代理

无论是pac模式、全局模式还是手动模式,都无法正常代理
日志中有访问的记录,但是浏览器提示CONNECTION_CLOSED
transport settings中的tls设置和mux设置无法enable,不知道什么毛病
系统:macos 10.10.5
浏览器:chrome 6x
代理方式:switchyomega 和 系统pac

间歇性连不上

平常用的用好的,但是总是隔一段时间就连不上,要断开wifi再重连就可以了,希望能加强下代码质量。

问题:V2Ray X开启V2Ray rule模式及stop后出现Safari访问国内网站极慢的情况

·使用场景:使用Safari和chrome访问网站。
·问题描述:V2Ray X使用V2Ray rule模式后出现Safari访问国内网站极慢的情况,stop后依然存在该问题,quit后依旧存该问题。在进行 Safari->设置->高级->代理设置->随意点选一个->取消勾选 的操作后恢复正常;Chrome也存在该问题,但比Safari略好。问题于昨晚出现,Google后未能找到解决方案。
·操作系统:macOS Sierra 10.12.6 (16G29)
·V2Ray X版本:0.7.8 (1)
·core版本:2.3.7
·网络环境:**电信,Wi-Fi

Manual mode 内置规则问题

看到的不正常的现象:
Manual mode下SSH客户端通过代理连接非标准端口VPS,结果没有走代理,是直连的。

期待看到的正确表现:
Manual mode只要调用就走代理,不预置内部规则。

使用v2rayx生成的config无法使v2ray(X)正常工作

环境:
OS:macOS 10.13.2
v2rayx: Version 0.9 (1)

无法使用进行科学上网,而手机通过shadowrocket可以正常使用,所以可以确定服务器配置没有问题。(PS:服务器配置基本就是默认配置)
将v2rayx生成的config文件导出,使用此配置文件运行v2ray,仍然无法科学上网。
经测试,将此config中的某些配置参数删除可以正常连接。

v2rayx生成的config

"outbound" : {
    "sendThrough" : "0.0.0.0",
    "mux" : {
      "enabled" : true,
      "concurrency" : 8
    },
    "protocol" : "vmess",
    "settings" : {
      "vnext" : [
        {
          "address" : "my-sever-ip",
          "port" : my-server-port,
          "users" : [
            {
              "id" : "my-uuid",
              "alterId" : 64,
              "security" : "aes-128-cfb",
              "level" : 1
            }
          ],
          "remark" : "remark"
        }
      ]
    },
    "streamSettings" : {
      "network" : "tcp",
      "tcpSettings" : {
        "header" : {
          "type" : "none"
        },
        "connectionReuse" : true
      },
      "kcpSettings" : {
        "header" : {
          "type" : "none"
        },
        "mtu" : 1350,
        "congestion" : false,
        "tti" : 50,
        "uplinkCapacity" : 5,
        "writeBufferSize" : 1,
        "readBufferSize" : 2,
        "downlinkCapacity" : 20
      },
      "security" : "tls",
      "tlsSettings" : {
        "serverName" : "",
        "allowInsecure" : false
      },
      "wsSettings" : {
        "path" : "",
        "connectionReuse" : true
      }
    }
  }

删除部分参数可正常使用的

"outbound" : {
    "protocol" : "vmess",
    "settings" : {
      "vnext" : [
        {
          "address" : "my-sever-ip",
          "port" : my-server-port,
          "users" : [
            {
              "id" : "my-uuid",
              "alterId" : 64,
              "security" : "aes-128-cfb",
              "level" : 1
            }
          ],
          "remark" : "remark"
        }
      ]
    }
  }

这些多余的参数是由v2rayx的configure窗口中transport setting生成的,问题是这些参数哪怕手动删除之后,仍会自动生成出来。

macOS 10.13.1下界面和运行均不正常

使用场景:macOS 10.13.1
问题描述:macOS 10.13.1下界面和运行均不正常,包括:
1、菜单栏上的图标消失;
2、开启和关闭显示为Item 1和Item 2
3、Servers菜单无法展开
4、配置无法保存
5、无法选择工作模式
软件版本:0.7.9

第一次运行出现Sorry, unknown settings!问题

手上有两台Mac同样的系统,都是10.12,一台运行是正常的,也能用Chrome上网。另一台刚开始运行V2RayX时有一个提示,忘了是什么,点了之后然后提示这个:
Sorry, unknown settings!
All V2RayX settings will be reset.
在Chrome中打开Google提示:代理服务器出现问题,或者地址有误。

执行"defaults delete cenmrev.V2RayX"命令再试也是一样的错误提示
求助这是为什么,明明一样的配置两台的表现不一样,看了源码还是不明所以

配置问题

你好,小白问题望能抽空回复一下:
下载了 V2RayX.app 拉到应用里面,新建了服务器,填入了端口(服务器是 socks,1080),服务器地址,端口号,UID。一切看似都是正常,但 Safari/Chrome 依然无法上网。
复制 config.json 在 Windows 上则一切正常。
请问是哪里设置错了么?或者能否采用直接放入 json 文件的方式完成配置?

谢谢

v2ray rules模式下自动启动socks代理而无法启用网页代理(http)

使用v2ray rules模式时会自动在代理中勾选socks代理,而无法使用http代理,强行勾选后也无法使用代理。重启程序或者切换到其他模式后再次使用v2ray rules模式后,仍然只选中socks代理。v2rayw中有可以选择代理模式到切换功能,v2rayx中虽然有设置选项但是好像不起作用。修改config.json中inbound protocol为http后重启程序仍然自动修改为socks。macos下socks似乎支持不是很好,尤其是自带到邮件应用。

建议:手动编辑或导入config.json

用了V2RayX以后似乎outbound只能用vmess了,而我暂时没有机器可以搭v2,想接入ss作为服务端。请问可以提供一些配置更灵活的方式吗?比如标记一个profile就是手工导入的,在配置窗口中只给一个按钮打开Jayson或其他什么文本编辑器,这样会不会更灵活一些?
我的想法和 #14 有些类似,但是觉得兼容原生json会不会更好实现一些?

Question and Suggestion

1.目前是否是不支持配置文件配置,那么 add Serves 之后配置记录在哪里
2.状态栏上参考 Surge 调宽一点可能会好看许多
screen shot 2017-01-26 at 22 56 57

Unable to enable Mux

When Mux is enabled from the configuration UI, it is not correctly enabled in the generated config.json.

The generated configuration section is:

    ...
    "mux" : {
      "enable" : true,
      "concurrency" : 8
    },
    ...

where the key "enable" should be "enabled"

建議:支持以導入 json 文件的方式配置服務

可能我比較久沒有更新過,
剛剛升級到新版,打開的時候,之前的配置全部都沒有了。只能重新再設置一次。

建議後期更新能否考慮引入導入 json 文件的方式去配置服務?
至少希望在升級時,不要重置個人配置信息。

感謝!🙏

[Done] Add support for installing v2rayx using brew cask on Mac

已经添加了在 Mac 系统上使用 brew cask 安装 v2rayx 的 cask#v2rayx,现在可以使用了。

$ brew cask search v2rayx
==> Exact Match
v2rayx

$ brew cask install v2rayx                                        
==> Satisfying dependencies
==> Downloading https://github.com/Cenmrev/V2RayX/releases/download/v0.7.8/V2RayX.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask v2rayx
==> Installing Cask v2rayx
==> Moving App 'V2RayX.app' to '/Applications/V2RayX.app'.
v2rayx was successfully installed!

关于配置菜单的优化

建议在配置菜单中,增加对用户输入的trim处理(去掉首尾的空格等)

刚刚折腾了半天,才发现是Address填的时候后面多了一个空格。。。 #

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.