2024 科学上网秘籍:v2rayA 安装与配置指南for Windows、Macos、Linux
本教程详细讲解了如何在 Windows, debian 系列和 redhat 系列 Linux 操作系统以及 Macos 系统上安装并配置 v2rayA 这款科学上网、魔法上网软件。
由于本文涵盖的范围较广,虽然已经做了精简,篇幅仍然偏长。Windows 上安装 v2rayA 相对简单,用户可以直接使用精简版教程 Windows 上安装与配置v2rayA - 鹏叔的技术博客。
Android 用户可以使用教程 Android 上安装与配置v2rayNG - 鹏叔的技术博客
实际安装与配置过程中,可以快速略过某些与您的当前操作系统不相关的操作步骤。
1. V2Ray 介绍
在正式开始安装之前我们先简要介绍一下 v2rayA 以及其核心 v2ray,以便有一些基本了解,方便理解后续安装和配置过程。如果您对 v2ray 已有了解,完全可以跳过本节,进入下一章节。
V2Ray 是一个支持多种协议的代理上网软件。
它可以使用多种协议进行数据传输,包括 VMess、Trojan、Shadowsocks 等。
是 Victoria Raymond 以及其社区团队开发的 Project V 下的代理上网软件。
Project V 是一个工具集合,号称可以帮助其使用者打造专属的基础通信网络。
Project V 的核心工具称为 V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。
V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。
开发过程主要使用 Go 语言,Core 采用 MIT 许可证并开放源代码。
VMess 是 V2Ray 的核心协议, 也是 V2Ray 的默认协议,是 V2Ray 的主要开发方向。
VMess 具有较高的性能、安全性和抗封锁能力。
1.1. 什么是梯子?
梯子又叫做机场是一种网络服务商,专门提供翻墙服务、科学上网或者魔法上网服务,如 Shadowsocks、V2ray、Trojan、Hysteria 等翻墙协议的节点服务器。
之所以又称它们为机场,是因为这些服务最初使用的 Shadowsocks (简称 SS) 和 ShadowsocksR (简称 SSR) 协议,其客户端图标是一架纸飞机。
用户通过将这些节点服务器订阅文件输入到飞机(即 Shadowsocks 客户端)中,从而实现绕过网络封锁达到科学上网/魔法上网的目的。
目前,大多数机场能够提供针对 GWF 防火墙的全协议节点服务,但它们在速度、安全性和稳定性方面存在差异。
1.2. v2ray 与 VPN 的关系
v2ray 和 VPN 都是可以用于保护您的在线隐私和安全的工具。但是,它们的工作方式不同,并且具有不同的优势和劣势。
VPN 是虚拟专用网络,它本来是一种组网技术,这种组网技术正好可以用于绕过防火墙的限制。可以将其划归于第二代翻墙技术。
而 Shadowsocks, ShadowsocksR 以及 v2ray 则是因防火墙而生的,其本质上是一种代理上网技术。相较于传统 VPN,它能更好消除数据包中的特征,从而绕过主动或被动 censorship,提供更强的隐私保护。在复杂的网络环境下(如大规模的封锁或干扰)表现更好,可以将其划归于第三代翻墙技术。
虽然同属于第三代翻墙技术, v2ray 这位后起之秀相较于 Shadowsocks 拥有更广泛的协议支持,更高的隐私安全。限于篇幅原因这里不具体展开。
1.3. V2Ray 与 v2rayA 的关系
v2rayA 是一个基于 V2Ray 内核的客户端软件,它支持 Windows、Mac、Linux 等平台。
v2rayA 的功能非常强大,可以根据用户的需求进行自定义配置。
1.4. V2Ray 与 Xray 的关系
2020 年 11 月,因为开源许可证等原因 XTLS 被 V2Ray 社区从 V2ray core 移除,
VLESS 及 XTLS 的作者和支持者基于 V2Ray 另行组建了 Project X 组织。
开发了基于 V2Ray 的衍生版本 Xray。该软件完全兼容 V2Ray 的配置文件和传输协议。
1.5. V2Fly 与 V2Ray 的关系
由开源社区 v2ray/v2ray-core 原作者失踪后,其他维护者没有完整权限。
为了方便维护,社区创建了新的 organization:github.com/v2fly。
2. 安装 v2rayA
安装与配置过程分为以下几个步骤:
- 首先安装 v2ray 内核
- 然后安装 v2rayA(客户端),
- 配置 v2rayA
- 配置以及连接机场节点。
对于 Windows 系统,安装和配置步骤更精简一些。如果您的操作系统是 Windows, 可以直接跳转到精简版安装教程 Windows 上安装与配置v2rayA - 鹏叔的技术博客
2.1. 安装 v2ray-core 内核(windows 系统可跳过此步骤)
因为 Windows v2rayA Installer 自带了 v2ray 内核,对于 Windows 系统可以跳过内核安装这一步骤。
对于 Linux 和 macOS 操作系统则仍然需要先安装 v2ray-core 内核
下载过程中如果遇到 github 不能访问的情况,
方法 1:可以通过 github 代理 https://ghproxy.net/ 下载
方法 2: 可尝试使用文章-解决 GitHub 访问不了的方法中介绍的方法。
2.1.1. Linux 上下载并安装 v2ray 内核(Debian 和 Redhat 系列 linux 通用)
1 |
|
2.1.2. Macos 上下载并安装 v2ray 内核
1 |
|
2.2. 安装 v2rayA
针对不同的操作系统,请参考不同的安装步骤。
2.2.1. Windows 上安装 v2rayA
对于 Windows 操作系统
1 | # 打开powershell, 普通用户权限即可, 执行以下命令下载 v2rayA 安装文件,安装文件将会被保存在用户的下载目录下 |
在 Windows 操作系统上, 也可以手动安装 v2rayA 详细过程如下。
从v2rayA github release下载安装包,下载完成后双击安装程序按照安装向导进行安装。
2.2.2. MacOS 上下载并安装 v2rayA
对于 MacOS 操作系统
1 |
|
2.2.3. Linux Debian 系列下载并安装 v2rayA
对于 debian 系列发行版(Ubuntu, Mint, MX, Kubuntu, Zorin 等等)
使用命令行安装:
1 | # 下载debian安装包, 针对不同的硬件架构以下下载命令稍做调整即可. |
2.2.4. Linux Redhat 系列下载并安装 v2rayA
对于 Redhat 系列发行版(Centos, Fedora, AlmaLinux, Rocky Linux 等)
1 |
|
2.2.5. Android 手机上安装与配置 v2rayNG
Android 上安装 v2ray 客户端,可参考这篇文章Android 上安装与配置v2rayNG - 鹏叔的技术博客
3. 配置 v2rayA (windows 可跳过此步骤)
因为在 Windows 上,安装程序默认设置了 v2rayA 与内核的关联,所以可以跳过以下配置过程
3.1. 配置 v2rayA
修改/etc/default/v2raya
配置文件让 v2rayA 使用 v2ray-core
1 |
|
1 |
|
3.2. 设置开机启动
3.2.1. Windows 操作系统上设置 V2rayA 开机自启
windows 可跳过此步骤, Window v2rayA Installer 安装过程中已经自动完成了这些设置
3.2.2. Linux 操作系统上设置 V2rayA 开机自启
1 |
|
3.2.3. MacOS 上启动 V2rayA
手动启动 v2rayA 如下
1 | v2raya --lite |
选项说明
–lite: 非 root 用户只能在 lite 模式下启动 v2rayA, 如果是 root 用户可以不带该选项
4. 如何使用 v2rayA?
使用 v2rayA 分为以下步骤:
- 首先通过 v2rayA web 管理界面创建一个用于管理 v2rayA 的账号;
- 然后从机场服务商那里获得订阅,并导入订阅;
- 最后连接并启动节点。
完成这些即可畅通无阻的访问外网了。
4.1. 登陆 v2rayA web 管理界面
在浏览器中打开 v2rayA web 管理界面 http://localhost:2017/
说明:
如果 v2rayA 正常启动(启动有时需要等待几分钟)则会监听在 2017 端口,在所有操作系统上 v2rayA 管理方式都是一致的, 都是通过 WEB 界面进行管理。
许多服务器是没有安装 Linux 桌面的,无法在主机上使用浏览器进行访问,此时需要远程管理 v2raya,开启远程管理参考本文 进阶用法 -> 开启远程管理章节。
Macos 上不要用 safari 浏览器打开可换其它浏览器,例如使用 chrome 打开,v2rayA GUI 对 safari 支持不太好,可能会出现白屏的情况。
4.2. 创建管理账号
在第一次进入页面时,你需要创建一个管理员账号,请妥善保管你的用户名密码。
如果遗忘,可以使用 sudo v2raya --reset-password
命令重置密码, 重置前先停止 v2raya,详细用法请查看 Troubleshooting - 问题 2。
4.3. 获取机场订阅 url
可以从如下机场服务商列表中获取订阅或节点。
从以上机场服务商列表, 选择一个机场服务商,然后注册账号,购买订阅,通常在“仪表盘 -> 一键订阅”可以获取到订阅 url。
说明:
- 如果要使用 ChatGPT, 需要注意以下两点
a) 选择机场服务提供商时选择支持 ChatGPT 的服务提供商例如: 稳联云,这种资源目前非常稀缺,实测以上机场服务商列表中“稳联云”的多数节点(截至 2024-10-29)支持得很好。
b) v2ray web 设置 =》透明代理/系统代理实现方式 =》需要设置为 tproxy(透明代理) 参考章节 4.7. 检查设置。
4.4. 导入订阅 url 或 节点 url
根据前面指引获取到订阅 url 后,就可以导入订阅了,详细步骤参考以下截图。
点击导入按钮进入订阅或节点导入界面,推荐使用导入订阅的方式,比较简单方便。
一个订阅下有若干个节点,也可以选择逐个导入一个或多个节点。另外如果是自建服务器,一般不会有订阅 url, 此时可以选择以节点方式导入。
导入订阅如下图所示:
订阅 URL 类似这样子: https://xxx.xxxx.com/api_version2/xxxxxxxx?sub=3&extend=1
4.5. 连接节点
一个订阅多数情况下会包含多个分布在全球各地的不同节点,一旦订阅成功导入就会自动获取到相应的节点信息。
管理界面介绍可以参考 6.3. v2rayA 的管理界面介绍。
导入订阅 url 后,会看到,节点数量,另外会看到右侧多了一个节点列表标签页。通常在订阅 url 格式正确,订阅没有过期的情况下,我们可以看到节点数量,如果发现节点数量为 0 或很少,可以手动点击更新进行更新。
切换到节点列表标签页,点击相应节点后面的“连接”按钮,可同时连接一个或多个节点,这也是 v2ray 和 V2rayA 与其他代理上网方式相比强大的地方。
说明:
虽然可以同时连接多个节点,但是这里不建议选择过多的节点,6 个以内为佳。
如果没有自动获取到节点信息,则可以手动点击订阅右侧的更新按钮,获取节点信息。另外在使用过程中如果节点出现 Timeout 和 not stable,某些情况下可能是节点配置已经过期,此时也可以使用更新按钮更新节点信息,以获得最新的节点配置。在设置界面有“自动更新订阅”,设置好合适的更新间隔,以保持节点设置始终处于最新状态。
4.6. 启动节点
导航到 SERVER 或订阅节点列表页,选择一个或多个节点后,启动该服务器。
连接成功后节点变为蓝色,如下图所示:
技巧与提示:
步骤 1,勾选一个或多个节点,此时界面上会出现 Ping 和 HTTP 按钮,点击相应按钮测试服务器 ping 值,以及 http 延时,以便快速找到可用节点。
步骤 2, 选择节点,在每个节点右侧有一个选择按钮,点击选择按钮选中节点,此时节点呈现柚红色,因为还未启动它们。
步骤 3,在页面左上角有个“就绪”按钮点击该按钮启动节点,节点呈现蓝色表示启动成功。
如果未呈现蓝色即未启动成功,请点击页面右上角点击日志查看问题详情。
另外查看评论区网友遇到过的问题,或许对一些疑难杂症会有所帮助。
节点呈现蓝色是能成功连接外网的基本要求,也即如果不是蓝色肯定连接不了外网,节点呈现蓝色后,还要检查其他要求包括:Ping 值是否正常 和 HTTP 延迟是否正常,设置是否合理等。
4.7. 检查设置
有时候节点已经正常启动已经呈现蓝色,但是仍然不能正常访问某些网站,这可能与具体设置有关系。
此时可以参照下图推荐的设置进行调整,基本能成功访问。
如果仍然有不能成功访问外网,可以查看一下日志信息,看是否有错误信息。
详细的错误日志可以点击网页上的日志按钮查看, 也可以在/var/log/v2raya/下面可以找到日志。有时会因为缓存原因,设置修改后不会立即生效,这时可以重启一下网卡,或者重启一下 v2rayA 服务。
说明:
如何理解这里的配置选项?
- 首先了解端口分流规则。
什么是分流规则?
要讲清楚V2Ray的分流规则,需要非常长的篇幅, 这里我们将其进行简化, 虽然不够准确但是对于快速理解分流规则会有帮助,
所谓的分流就是V2Ray捕获到我们的数据请求以后,判断是应该走直连(direct)还是走代理(代理)。毕竟不是所有的网站都被墙了,所以对于没有被墙的网站直连依然是有效的访问方式。被墙的网站当然需要走代理,有些网站对于IP的地域是有限制的, 比如一些流媒体网站,这些网站也只能通过代理才能正常访问,另外出于自身隐私保护的需求,不想将自己真实的ip地址暴露给被访问网站,那么也需要通过代理访问。所以需要定义一些规则来满足不同的访问需求。为什么叫端口分流规则,这里的端口是什么意思?
这是因为V2rayA不仅仅可以作为客户端代理本机的数据请求,它还可以作为代理服务器为局域网内的其他设备提供代理。当它作为代理服务器时,它监听在特定端口,例如v2rayA作为http代理,默认监听在20171和20172端口,作为socks代理默认监听在20170端口。针对不同端口来的数据请求,可以配置不同的规则,所以叫端口分流规则。当V2rayA作为客户端时,不涉及到端口,所有的请求都会经过分流规则, 具体规则是由”透明代理/系统代理“规则决定的。
v2rayA 是对 v2ray(内核)的一层包装,v2ray 的分流规则非常强大且灵活, 非专业人士很难理解这些规则。
v2rayA 在 v2ray 的复杂的分流规则的基础上,抽象出了两套基本规则,一套是大陆白名单模式,一套是GFWList模式,这两套预定义的规则基本能满足90%的科学上网需求,
如果需要更复杂的分流规则,v2rayA保留了v2ray 的routingA规则,几乎和v2ray的规则完全匹配,这样既简化了配置,又保持了v2ray的强大与灵活性。
大陆白名单模式 和 GFWList模式的主要差别是,GFWList模式仅根据被墙的域名名单判断应该走proxy(代理)还是 direct(直连)
大陆白名单模式会根据域名对应的ip获取到地域属性,如果是CN(中国)则直连,否则都走代理。所以使用v2rayA需要两个文件,一个是geosite.dat一个是geoip.dat这两个文件,用于判断域名是否在白名单和获取IP的地域属性。
两套规则各有优劣,GFWList模式的优势是性能稍好,它少一次域名解析的过程和一次提取地域属性的运算,性能上有些优势,它的劣势是使用者在访问国外网站时,不知道自己使用的是代理还是直连, 也即不确定自己的真实ip是否会暴露或者不确定自己的ip是否满足网站的地域要求,有时以为自己在使用代理实际是直连。
使用大陆白名单模式的优势是访问国外的网站统一使用代理, 国内则统一使用直连方式,不存在代理和直连混淆的状况, 但是由于多一次域名解析, 可能存在dns泄漏的问题, 所以在dns配置时一定要选择合适的选项, 后面会讲到。
- 然后要了解透明代理/系统代理实现方式
如果说分流规则决定何时使用代理,那么本项设置就是决定使用什么样的代理。透明代理和系统代理都会将源ip修改为所使用的代理的ip, 而redirect则会保留请求的源 ip. 所以两者明显的差别是在访问外网时, 目标网站看到的ip地址不同,这点可以使用whoer.com来检测, 通过调整代理实现方式,切换节点来观察ip的变化。
当访问一些对ip所属地域有要求的网站时,可以通过调整代理实现方式来改变访问网站时的ip地址.
- 透明代理/系统代理 选项
这条是设定在何种情况下使用透明代理/系统代理, 也即v2rayA作为V2Ray客户端时的分流规则,具体含义可以参照端口分流规则。
- 防止 DNS 污染
其实不仅仅是防止dns污染,如果分流和代理模式选择了大陆白名单时, 还要防止dns泄漏,关于什么是dns泄漏 以及dns污染,可以自行科普。
如果在使用了大陆白名单模式时,最好使用转发DNS请求,这样DNS请求是通过代理解析的,而不是通过本机dns服务器解析,从而避免泄漏。
这点可以使用 https://ipleak.net/ 或 https://whoer.com/ 检测, 当使用tproxy或者system proxy时, 如果一些被墙的网站有来自china的解析结果时,表示有ip泄漏的风险。
- 其他选项比较容易理解,这里暂时不做过多解释。
5. 验证设置是否成功?
如果是 Linux 桌面, 可以打开浏览器访问https://www.google.com, 如果能成功访问则表示连接成功.
如果是在命令行下, 可以运行如下命令访问 google. 如果能看到从 google 传输过来的内容, 则表示成功.
1 |
|
至此在单台主机上已经可以科学上网了,下面是一些进阶用法,如有需要可以参考。
6. 进阶用法
6.1. 开启远程管理(可选)
如果要远程管理 v2rayA 服务,需要放行 2017 端口,如果不需要远程管理 v2ray 可以忽略本节以下设置。
远程端口以及 ip 依然在 vi /etc/default/v2raya 中配置
1 | # 修改varaya 监听地址和端口 |
执行以下命令检查防火墙设置
1 | # 检查防火墙是否开启 |
6.2. V2rayA 如何为其他终端提供代理服务 (配置代理)
如果在局域网内,不仅本机可以访问外网,而且 V2rayA 经过配置后,可以作为代理服务器让局域网内其他设备科学上网。此时 V2rayA 化身为一台代理服务器为其他电脑客户端提供代理(其他电脑无需安装 任何客户端, 使用系统自带的 http,https 或者 socks 代理功能即可)。
默认情况下 v2rayA 会通过 v2ray 内核开放 20170(socks5), 20171(http), 20172(带分流规则的 http) 端口作为代理端口(可以在 v2rayA 设置=>地址与端口 页面查看或修改端口)。
如果是需要为局域网中的其他机器提供代理,打开 v2rayA web,在设置中开启“开启端口分享”,并检查防火墙端口放行情况。开启防火墙请参考前面章节 - 开启远程管理
完成以上工作,一台代理服务器配置已经完成。
6.2.1. v2rayA 为 linux 或 Macos 终端提供代理
在被代理机器上添加如下两个环境变量即可。
在 linux 或 Macos 操作系统上, 找到环境配置文件,添加如下两行配置.
以 bash 为例,修改~/.bashrc, 添加如下两行配置, 其他 shell 可以自行科普 shell 环境变量配置。
1 | # 修改bash的配置文件 |
6.2.2. v2rayA 为 Windows 终端提供代理
在 windows 操作系统上, 打开 Windows 环境变量配置界面,添加如两个环境变量。
1 | http_proxy="http://server_ip:20171" |
6.2.3. v2rayA 为 Android 终端提供代理
安卓上设置代理上网,讲起了比较复杂,好在有些文章可以参考 例如:安卓如何设置代理 IP?
需要注意的是,在以上教程中,主机名字段替换为 server_ip,端口填入 20172 即可。
6.2.4. v2rayA 为 iOS 终端提供代理
iphone 也可以通过 v2rayA 代理科学上网, 这样可以省去获取美区 ip, 安装小火箭的麻烦。
6.2.5. 透明代理
这种方法是 v2rayA 推荐的方法。它相比于其他方法具有诸多优势,v2rayA 可以一键开启透明代理,为几乎所有程序提供代理服务。
在设置中选择透明代理的分流方式,以及实现方式,然后保存即可。
注意,如需选择 GFWList,需要下载对应的规则库,请点击右上角的更新以完成下载。
6.2.6. 系统代理
系统代理可为主动支持代理的程序提供代理服务。在不同的桌面环境中设置的位置不尽相同,请通过搜索引擎自行搜索。
6.3. v2rayA 的管理界面介绍
v2rayA 的管理界面在我看来稍显复杂,尤其对于新手不是很友好,用户体验还有很大的改善空间。在连接节点之前有必要先简单介绍一下这个管理界面, 避免一些困惑。
管理界面总共分为三大管理对象和上方的功能按钮:
- 订阅管理
- server
- 节点列表
- 首先订阅管理
一个订阅多数情况下会包含多个分布在全球各地的不同节点,一旦订阅成功导入就会自动获取到相应的节点信息。
订阅导入,需要结合上方的导入按钮进行导入。 订阅管理界面主要用于管理订阅的更新,订阅的修改, 订阅的删除等。
- 其次是 server 管理
这里的 server 其实就是节点,只是这些节点可以是自己搭建的科学上网节点,也可以是机场服务提供商提供的节点, 或者朋友通过节点 url 分享出来的节点。由于自建的节点一般情况下没有订阅 url,或者节点 url。所以需要一个单独的管理界面逐项进行配置。节点配置需要结合上方的创建按钮。如果是有 url 的节点,可以通过导入按钮,导入节点。
- 最后节点列表:
节点列表通常情况下不会显示在管理界面,只有订阅 url 成功导入后才会显示相应订阅的节点列表。节点列表的功能很丰富。
1)可以批量测试节点的 ping 延迟,http 延迟。需要结合上方的 ping 按钮和 http 按钮(这两个按钮是隐藏的,只有当节点被选中才会出现)。
2) 选择节点或切换节点,节点右侧有一个选择按钮,用于选择和取消选择节点。所谓的选择就是打算使用那个节点作为代理服务器,可以同时选择多个,这样在其中一个或几个节点不可用时,整体依然保持可用。选择按钮还要结合左上方的就绪和启动按钮, 才能完成代理的启动任务。当节点一个或多个节点被选中,此时代理整体处于就绪状态,并未真正的开始代理。要开启代理还要点击“启动”按钮,依然是那个按钮,只是此时它的 label 是启动。点击了启动,节点变成蓝色表示启动成功,代理进入运行状态。
3) 查看流量使用情况,订阅的有效期等。
v2rayA界面的复杂性主要在于其将订阅管理,节点管理等等混杂在了一个界面, 同时一个按钮承载了太多的功能, 从程序设计的角度这种重用是好的,但是从用户的角度, 会导致一些概念上的混乱。
7. Troubleshooting
7.1. 问题 1: 检测到 geosite.dat, geoip.dat 文件或 v2ray-core 可能未正确安装,请检查
问题描述
访问 http://your_server_ip:2017/时, 系统弹出提示”检测到 geosite.dat, geoip.dat 文件或 v2ray-core 可能未正确安装,请检查”
问题分析:
“geosite.dat”:提供一个预定义好的 「全球域名」 列表;
“geoip.dat” :提供一个预定义好的 「全球 ip-地区」 列表.第一种可能性是可能是根本没有安装任何 v2ray-core, 由于 v2rayA 的 linux 版本和 macos 版本都是不带 v2ray 内核的,如果没有安装内核可能会出现以上错误。
第二种情况,geosite.dat, geoip.dat 文件没有放到正确的位置。
由于 v2rayA 不同的版本之间,运行在不同的系统上面,读取配置文件的位置有所不同,也会出现找不到这两个文件的情况。
解决办法是查看错误日志。手动拷贝这两个文件到相应位置。
解决方案
参照安装 v2ray-core 章节将 v2ray-core 安装配置好
再次访问 v2ray web ui, 错误消失.
如果仍然有问题,可以将安装 v2ray core 时自带了一份 geosite.dat, geoip.dat 文件,只是不是最新数据,但是仍然可用,将其拷贝到相应位置即可。
最新数据位于https://github.com/v2rayA/dist-v2ray-rules-dat
可以直接下载也可以通过 github 代理 https://ghproxy.net/ 下载
7.2. 问题 2: 忘记了 v2rayA 的用户名和密码怎么办?
重置密码
1 |
|
8. 特别说明
工具本无善恶, 正与邪取决与使用工具的人, 主体是人. 请将工具用于正道, 切莫用于邪道给自己带来灾殃. 最后如果你能成功访问某 tube, 一篇关于安全方面的知识的值得首先了解一下.
转载会给您带来不必要的麻烦, 所以本文禁止转载.
2024 科学上网秘籍:v2rayA 安装与配置指南for Windows、Macos、Linux