.github/ISSUE_TEMPLATE | ||
gui | ||
install | ||
service | ||
.dockerignore | ||
.gitignore | ||
.travis.yml | ||
CNAME | ||
docker-compose.dev.yml | ||
docker-compose.yml | ||
Dockerfile | ||
Dockerfile.dev | ||
go.mod | ||
issue_template.md | ||
LICENSE | ||
README.md |
V2RayA
V2RayA 是一个支持全局透明代理的 V2Ray Linux 客户端。
V2RayA 致力于提供最简单的操作,满足绝大部分需求。
虽然 V2RayA 是一个 Web 客户端,它也支持以 PWA(Progressive Web App)的方式享受桌面端应用的体验。食用方法
得益于Web客户端的优势,你可以轻松地将它部署在软路由或NAS上,并通过http访问管理你的节点。
目前V2RayA仅在部分Linux发行版进行过充分测试,在使用过程中如果遇到问题,欢迎提出issue。
项目地址:https://github.com/mzz2017/V2RayA
前端 demo: https://v2raya.mzz.pub
Build Status
name | docker image | travis-ci | netlify |
---|---|---|---|
V2RayA |
功能清单
已支持:
- 全局透明代理
- V2Ray 服务控制
- 导入 vmess、ss、订阅地址
- 手动添加/修改节点
- websocket、kcp、tcp、http、tls、shadowsocks 全支持
- 测试节点 Ping 时延
- 二维码、地址分享
- 同时开放 socks5、http、带 PAC 的 http 三个端口(PAC 模式可选 GFWList、大陆白名单)
- 服务端启动自动检查 PAC、订阅更新
- 多路复用、TCPFastOpen 支持
- 以service方式启动
- 检查版本更新
- 登陆与安全
- 服务端端口号配置、前端可指定服务端地址
待开发:
- 测试节点 HTTP 时延
- 自定义 PAC 路由规则
- QUIC、SSR 协议支持
界面截图
节点
订阅源
设置
点击展开更多截图
使用自定义PAC时可以配置路由规则
使用
如下使用方法:
-
使用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服务端正常运行后,就可在Web-GUI使用了(或手动部署 Web-GUI)。
-
使用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服务端正常运行后,就可在Web-GUI使用了(或手动部署 Web-GUI)。
-
使用二进制文件 / 安装包(支持常见linux系统)
请确保已正确安装 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服务端正常运行后,就可在Web-GUI使用了(或手动部署 Web-GUI)。
-
拉取源码,使用 docker-compose 部署。
git clone https://github.com/mzz2017/V2RayA.git cd V2RayA docker-compose up -d --build
-
使用 docker 命令部署。注意在启动v2ray及v2raya容器时添加
--privileged --network host
以支持全局透明代理。我们同步发行Docker 镜像,如果无法使用 docker-compose,可以参考docker-compose.yml并使用 docker 命令自行搭建。
-
当然,你也可以选择拉取源码,通过 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。
默认使用的四个端口分别为:
2017: V2RayA 后端端口
20170: SOCKS 协议
20171: HTTP 协议
20172: 带 PAC 的 HTTP 协议
其他端口:
12345: tproxy(全局透明代理所需)
在不同运行环境下程序表现将不同
由于 docker 容器对 systemd 的限制性,在 docker 中将采用 pid 共享进程命名空间,volumes 共享存储空间,更新配置后通过结束进程触发 v2ray 容器的重启来更新配置,以无 inbounds 的配置代替断开连接,这是一种折中方案,会有如下影响:
- 在更换配置时略有卡顿
服务端支持 Windows、MacOSX 吗
目前仅在 Linux 进行过测试,并计划优先适配 Linux。目前尚未验证在 Windows 及 MacOSX 上存在的问题。
实际上 Windows 和 MacOSX 上已经存在很多优秀的 V2Ray 客户端,若无特殊需求,建议选择这些客户端。
已知问题
- 在使用 GoLand 进行开发调试时,如果开启了全局透明代理,由于进程捕获不了 GoLand 的结束 signal,在进程退出后将无法恢复正常网络,因此建议使用
killall ___go_build_V2R
来结束进程。如已无法正常上网,恢复网络的一种简单可行方法是重新启动程序并关闭全局透明代理。不开启全局透明代理时,GoLand调试将不受影响。
注意
-
应用不会将任何用户数据保存在云端,所有用户数据存放在用户本地配置文件中。若服务端运行于 docker,则当 docker 容器被清除时配置也将随之消失,请做好备份。
-
不要将本项目用于不合法用途。
在 docker 环境中开发
docker-compose -f docker-compose.dev.yml up --build
gin 会监测文件改动并热重载,见codegangsta/gin。