Skip to content
/ V2RayA Public
forked from ryp1987/V2RayA

一个支持全局透明代理且兼容 SS、SSR 的 V2Ray Linux GUI 客户端🚀

License

Notifications You must be signed in to change notification settings

Ce1k0/V2RayA

This branch is up to date with ryp1987/V2RayA:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

12ecdf8 · Jan 14, 2020
Oct 24, 2019
Jan 14, 2020
Dec 27, 2019
Jan 14, 2020
Dec 30, 2019
Dec 9, 2019
Dec 13, 2019
Oct 21, 2019
Dec 30, 2019
Dec 30, 2019
Dec 30, 2019
Oct 18, 2019
Jan 3, 2020
Jan 3, 2020
Jan 3, 2020
Oct 24, 2019

Repository files navigation

V2RayA

V2RayA 是一个支持全局透明代理的 V2Ray Linux 客户端,同时兼容SS、SSR协议。

V2RayA 致力于提供最简单的操作,满足绝大部分需求。

同时兼容V2Ray、SS、SSR意味着用户不再需要在不同工具之间切换,你甚至可以使用一个混合协议的订阅。

虽然 V2RayA 是一个 Web 客户端,它也支持以 PWA(Progressive Web App)的方式享受桌面端应用的体验。食用方法

得益于Web客户端的优势,你不仅可以将其用于本地计算机,还可以轻松地将它部署在路由器或NAS上。

目前V2RayA仅在部分Linux发行版进行过充分测试,在使用过程中如果遇到问题,欢迎提出issue。

项目地址:https://github.com/mzz2017/V2RayA

前端 demo: https://v2raya.mzz.pub

Build Status

name docker image travis-ci netlify
V2RayA Docker Cloud Build Status Travis (.org) Netlify

功能清单

已支持:

  • 全局透明代理
  • V2Ray 服务控制
  • 导入 vmess、ss、ssr、订阅地址
  • 手动添加/修改节点
  • websocket、kcp、tcp、http、tls、shadowsocks、shadowsocksR 全支持 [SS/SSR支持清单]
  • 测试节点 Ping、HTTP 时延
  • 二维码、地址分享
  • 支持PAC
  • 服务端启动自动检查 PAC、订阅更新
  • 多路复用、TCPFastOpen 支持
  • 自动检查版本更新
  • 自定义端口

待开发:

  • 自定义 PAC 路由规则
  • QUIC、auth_chain*支持
  • 透明代理重定向备选方案
  • 日志

界面截图

节点

订阅源

设置

点击展开更多截图

使用自定义PAC时可以配置路由规则(待实现)

使用

从软件源安装

如下使用方法:

  1. 使用apt-get安装(debian、ubuntu)

    请确保已正确安装 v2ray-core

    我们提供了 Linux 下的一键安装脚本(在官方脚本基础上增加了ustc镜像源):

    运行下面的指令下载并安装 V2Ray。当 yum 或 apt-get 可用的情况下,此脚本会自动安装 unzip 和 daemon。这两个组件是安装 V2Ray 的必要组件。如果你使用的系统不支持 yum 或 apt-get,请自行安装 unzip 和 daemon

    curl -L -s https://github.com/mzz2017/V2RayA/raw/master/install/go.sh | sudo -E bash -s - --source ustc

    准备完毕后:

    # add public key
    wget -qO - https://apt.v2raya.mzz.pub/key/public-key.asc | sudo apt-key add -
    
    # add V2RayA's repository
    sudo add-apt-repository 'deb https://apt.v2raya.mzz.pub/ v2raya main'
    sudo apt-get update
    
    # install V2RayA
    sudo apt-get install v2raya

    V2RayA服务端正常运行后,就可在GUI demo使用了(或部署GUI)。

  2. 使用yay/yaourt安装(archlinux、manjaro)

    由于v2raya发布在AUR中,而pacman不支持AUR,因此建议使用主流的yay或yaourt作为替代方案

    # install yay
    sudo pacman -Sy yay

    当yay或yaourt可用时,可通过yay或yaourt安装v2raya

    # assume command yay is available
    yay v2raya

    V2RayA服务端正常运行后,就可在GUI demo使用了(或部署GUI)。

Docker方式

  1. 拉取源码,使用 docker-compose 部署

    git clone --depth=1 https://github.com/mzz2017/V2RayA.git
    cd V2RayA
    docker-compose up -d --build

    如果出现ERROR: ...Connot start service...container...is not running,尝试添加参数-V

  2. 使用 docker 命令部署

    # pull stable version of v2raya
    docker pull mzz2017/v2raya:stable
    # pull latest version of v2ray
    docker pull v2ray/official
    
    # create volume to share data
    docker volume create v2raya_shared-data
    
    # run v2raya
    docker run -d \
    	--restart=always \
    	--privileged \
    	--network=host \
    	-v v2raya_shared-data:/etc/v2ray \
    	-v /etc/localtime:/etc/localtime:ro \
    	-v /etc/timezone:/etc/timezone:ro \
    	--name v2raya_backend \
    	mzz2017/v2raya:stable
    
    # run v2ray
    docker run -d \
    	--restart=always \
    	--privileged \
    	--network=host \
    	--pid=container:v2raya_backend \
    	-v v2raya_shared-data:/etc/v2ray \
    	--env V2RAY_LOCATION_ASSET=/etc/v2ray \
    	--name v2raya_v2ray \
    	v2ray/official \
    	sh -c "cp -rfu /usr/bin/v2ray/* /etc/v2ray/ && v2ray -config=/etc/v2ray/config.json"

    如果你使用MacOSX或其他不支持host模式的环境,在该情况下无法使用全局透明代理,docker命令会略有不同:

    # pull stable version of v2raya
    docker pull mzz2017/v2raya:stable
    # pull latest version of v2ray
    docker pull v2ray/official
    
    # create volume to share data
    docker volume create v2raya_shared-data
    
    # run v2raya
    docker run -d \
        -p 2017:2017 \
        -p 20170-20172:20170-20172 \
        -p 12345:12345 \
        --restart=always \
        --privileged \
        -v v2raya_shared-data:/etc/v2ray \
        --name v2raya_backend \
        mzz2017/v2raya:stable
        
    # run v2ray
    docker run -d \
        --restart=always \
        --privileged \
        --pid=container:v2raya_backend \
        --network=container:v2raya_backend \
        -v v2raya_shared-data:/etc/v2ray \
        --env V2RAY_LOCATION_ASSET=/etc/v2ray \
        --name v2raya_v2ray \
        v2ray/official \
        /bin/sh -c "cp -rfu /usr/bin/v2ray/* /etc/v2ray/ && v2ray -config=/etc/v2ray/config.json"

二进制文件、安装包

请确保已正确安装 v2ray-core

我们提供了 Linux 下的一键安装脚本(在官方脚本基础上增加了ustc镜像源):

运行下面的指令下载并安装 V2Ray。当 yum 或 apt-get 可用的情况下,此脚本会自动安装 unzip 和 daemon。这两个组件是安装 V2Ray 的必要组件。如果你使用的系统不支持 yum 或 apt-get,请自行安装 unzip 和 daemon

curl -L -s https://github.com/mzz2017/V2RayA/raw/master/install/go.sh | sudo -E bash -s - --source ustc

准备完毕后,可下载Releases中的二进制文件启动V2RayA服务端,或下载安装包进行安装。

V2RayA服务端正常运行后,就可在GUI demo使用了(或部署GUI)。

自行编译运行

当然,你也可以选择拉取源码,通过 golang 启动

该方法同样需要正确安装v2ray-core,详情见上

git clone https://github.com/mzz2017/V2RayA.git
cd V2RayA/service
export GOPROXY=https://goproxy.io # set goproxy.io as the proxy of go modules
sudo go run main.go

注意,尽管 golang 具有交叉编译的特性,但由于项目使用了大量 linux commands,导致该方法仍然不支持 windows。若想在 windows 体验,可尝试借助 Docker 或 WSL。

在路由器使用

分为以下几种情况:

若v2ray能够以daemon存在

能够以daemon存在即在正确安装v2ray后,使用下述命令之一能够得到正确的反馈:

# if systemctl is available
systemctl status v2ray
# else if service is available
service v2ray status

那么可从软件源安装,或下载releases中的对应安装包进行安装。

若v2ray能够运行于docker

可参照Docker方式使用

通用方法

  1. 请自行安装v2ray,并确保v2ray、v2ctl均被包含在PATH中,否则请将上述文件放于echo $PATH中的任一目录下。

  2. 下载releases中最新版本的对应CPU架构的二进制文件,或自行使用golang交叉编译。

  3. 使用参数--config=V2RAYA_CONFIG_PATH --mode=common启动V2RayA服务端,参数含义可执行--help查看。

    请将上述V2RAYA_CONFIG_PATH替换为一个可读写的,并且你喜欢的路径。

开放端口

默认使用的四个端口分别为:

2017: V2RayA 后端端口

20170: SOCKS 协议

20171: HTTP 协议

20172: 带 PAC 的 HTTP 协议

其他端口:

12345: tproxy(全局透明代理所需)

12346: ssr server(SS、SSR所需)

在不同运行环境下程序表现将不同

由于 docker 容器对 systemd 的限制性,在 docker 中将采用 pid 共享进程命名空间,volumes 共享存储空间,更新配置后通过结束进程触发 v2ray 容器的重启来更新配置,以无 inbounds 的配置代替断开连接,这是一种折中方案,会有如下影响:

  1. 在更换配置时略有卡顿

如何部署GUI

一般情况下可使用demo即可满足需求,如有部署GUI的必要,可参考下述文档:

使用docker一键部署

docker pull mzz2017/v2raya-gui
docker run --name v2raya-gui -d -p <port>:80 mzz2017/v2raya-gui

将上述<port>替换为任一本地端口即可。

手动部署

README

开发相关

在 docker 环境中开发

docker-compose -f docker-compose.dev.yml up --build

gin 会监测文件改动并热重载,见codegangsta/gin

如果出现ERROR: ...Connot start service...container...is not running,尝试添加参数-V

已知问题

在使用 GoLand 进行开发调试时,如果开启了全局透明代理,由于进程捕获不了 GoLand 的结束 signal,在进程退出后将无法恢复正常网络,因此建议使用killall ___go_build_V2R来结束进程。如已无法正常上网,恢复网络的一种简单可行方法是重新启动程序并关闭全局透明代理。不开启全局透明代理时,GoLand调试将不受影响。

注意

  1. 程序不会将任何用户数据保存在云端,所有用户数据存放在用户本地配置文件中。若服务端运行于 docker,则当 docker 容器被清除时配置也将随之消失,请做好备份。

  2. 提供的GUI demo是由Netlify在本 Github 项目自动部署完成的,如果担心安全性可以自行部署。

  3. 不要将本项目用于不合法用途。

感谢

hq450/fancyss

ToutyRater/v2ray-guide

nadoo/glider

协议

License: GPL v3

About

一个支持全局透明代理且兼容 SS、SSR 的 V2Ray Linux GUI 客户端🚀

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 43.7%
  • Vue 26.5%
  • JavaScript 12.6%
  • HTML 10.4%
  • Shell 4.2%
  • CSS 2.5%
  • Dockerfile 0.1%