欢迎加入tg群交流:@tlanyantg
V2ray 近期因新增VLESS协议而备受关注。V2ray官方对VLESS协议的定义是“性能至上、可扩展性空前,目标是全场景终极协议”。本文是 V2ray教程 和 V2ray高级技巧:流量伪装 的续篇,给出V2ray的VLESS协议介绍和使用教程。下载V2ray客户端请到 V2ray客户端 页面。
VLESS协议介绍
VLESS是一种无状态的轻量级数据传输协议,被定义为下一代V2ray数据传输协议。作者对该协议的愿景是“可扩展性空前,适合随意组合、全场景广泛使用,符合很多人的设想、几乎所有人的需求,足以成为 v2ray 的下一代主要协议,乃至整个 XX 界的终极协议。”,由此可见VLESS协议的强大。
VLESS命名源自“less is more”,写法与VMESS近似,个人认为命名非常有水准
与VMESS协议相同,VLESS使用UUID进行身份验证,配置分入栈和出栈两部分,可用在客户端和服务端。
VLESS和VMESS区别如下:
- VLESS协议不依赖于系统时间,不使用alterId。一些人的V2ray用不了,最后找出原因是电脑时间和服务器只相差两分钟,简直要让人抓狂;VLESS协议去掉了时间要求,双手举赞;
- VLESS协议不带加密,用于科学上网时要配合TLS等加密手段;
- VLESS协议支持分流和回落,比Nginx分流转发更简洁、高效和安全;
- 使用TLS的情况下,VLESS协议比VMESS速度更快,性能更好,因为VLESS不会对数据进行加解密;
- V2ray官方对VLESS的期望更高,约束也更严格。例如要求客户端统一使用VLESS标识,而不是Vless、vless等名称;VLESS分享链接标准将由官方统一制定(尚未出炉);
- VLESS协议的加密更灵活,不像VMESS一样高度耦合(仅对开发者有用)
对于普通用户来说,VLESS协议的主要优势是:1. 不需要客户端和服务器时间一致; 2. VLESS协议不自带加密,使用TLS的情况下性能比VMESS更好。
TLS将是接下来三到五年内躲避封锁的主流方式,例如V2ray伪装、trojan、SSRoT都是基于TLS。V2ray之前因性能不好而被一些人唾弃,VLESS协议的出现,让V2ray的便利性和性能达到 trojan 的高度(使用TLS的情况下)。
仅有VLESS还不够,套了一层TLS,V2ray的性能依然不如SS、SSR。但随VLESS协议而来的另一个大惊喜:XTLS。(个人认为)这是划时代的概念和技术,将V2ray的性能提升到、甚至超越SS/SSR的水平。
XTLS介绍
XTLS官方库 的介绍仅有一句话:THE FUTURE。这个十个字符足以透露出XTLS的牛逼和霸气。
V2fly官网(V2fly社区是V2ray技术的主要推动力量) 称 XTLS为黑科技,VLESS协议作者的形容是 划时代的革命性概念和技术:XTLS。
the future、黑科技、划时代、革命性,无论哪个词,都足以形容XTLS的牛逼和独到之处。
XTLS的原理是:使用TLS代理时,https数据其实经过了两层TLS:外层是代理的TLS,内层是https的TLS。XTLS无缝拼接了内外两条货真价实的TLS,使得代理几乎无需再对https流量进行数据加解密,只起到流量中转的作用,极大的提高了性能。
VLESS + XTLS的组合可以理解为是增强版 ECH,即多支持身份认证、代理转发、明文加密、UDP over TCP 等。但从其原理可知,VLESS + XTLS对http流量是没有多大优势的。好消息是,目前超过90%的流量都是https的,因此VLESS + XTLS能极大的提升性能,无愧于上面的评价。
需要说明的是,XTLS是科学上网的future,不是TLS发展的future
所以,想 科学上网 速度更快、手机路由器耗电更少,请使用VLESS+XTLS。如果客户端或者服务端不支持XTLS,TLS的情况下简单将VMESS换成VLESS也能带来性能提升。
2020.11.20更新:因为license问题,XTLS已经在V2ray-core 4.33.0被移除,原因和吃瓜链接参考:https://github.com/XTLS/Go/issues/9
XTLS作者创建了Xray项目,完整支持VLESS协议和XTLS,详情请参考:Xray教程
VLESS配置组合
VLESS协议本身不自带加密,用于翻墙时不能单独使用。由于XTLS的引入,目前VLESS协议有如下玩法:
- VLESS + TCP + TLS
- VLESS + TCP +TLS + WS
- VLESS + TCP + XTLS
- VLESS + HTTP2 + h2c
VLESS也可以配合mKCP使用
如果客户端和服务器支持,请优先使用VLESS+TCP+XTLS的配置,能极大的提升性能(有过CDN需求请选择WS版)。
VLESS + XTLS服务器配置教程
本文以VLESS+XTLS为例,介绍VLESS+XTLS配置和使用教程。
新手建议使用 V2ray多合一脚本,支持VMESS+websocket+TLS+Nginx、VLESS+TCP+XTLS、VLESS+TCP+TLS等组合
准备工作
- 准备一台境外的VPS,购买可参考 一些VPS商家整理;
- 准备一个域名,不需要备案,国内和国外买的都可以。域名购买可参考:Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购;
- 将域名的某个子域名DNS解析到境外VPS;
- SSH连接到境外服务器,windows请参考:Bitvise连接Linux服务器教程,mac系统请参考:Mac电脑连接Linux教程;
- 为域名申请一个证书,请参考:使用acme.sh签发证书 或 从阿里云获取免费SSL证书;
- 有基本linux技巧,能使用vim/nano等编辑器。
安装最新版V2ray-Core
目前V2fly分支的最新代码尚未合并到V2ray官方库中,因此我们需要V2fly提供的 fhs-install-v2ray 脚本安装最新版代码:
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
2020.11.23更新:V2ray-Core最新版v4.33.0已经将XTLS移除,如果你希望用XTLS功能,安装命令请更改为:
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) --version 4.32.1
服务器配置VLESS+XTLS协议
用vim、nano等编辑器编辑 /usr/local/etc/v2ray/config.json
文件,填入以下信息:
{ "log": { "loglevel": "info" }, "inbounds": [ { "port": 443, # 可以换成其他端口 "protocol": "vless", "settings": { "clients": [ { "id": "", // 填写UUID,可以使用/usr/bin/v2ray/v2ctl uuid生成 "flow": "xtls-rprx-origin", # V2ray v4.32.1以上版本建议为xtls-rprx-direct,能极大提升性能 "level": 0 } ], "decryption": "none", "fallbacks": [ { "dest": 80 // 回落配置,可以直接转到其他网站,例如"www.baidu.com:443" } ] }, "streamSettings": { "network": "tcp", "security": "xtls", "xtlsSettings": { "alpn": [ "http/1.1" ], "certificates": [ { "certificateFile": "/path/to/fullchain.crt", // 换成你的证书,绝对路径 "keyFile": "/path/to/private.key" // 换成你的私钥,绝对路径 } ] } } } ], "outbounds": [ { "protocol": "freedom" } ] }
然后设置开机自启并启动v2ray服务:systemctl enable v2ray; systemctl start v2ray
,启动后使用 ss -nltp | grep v2ray
应该能看到类似如下输出:
LISTEN 0 128 *:443 *:* users:(("v2ray",pid=12345,fd=3))
VLESS协议的fallback参数说明请参考:VLESS协议的fallback参数介绍
2020.11.08更新:V2ray v4.32.1中的XTLS Direct 模式引入了ReadV增强(即配置文件中flow的值改为xtls-rprx-direct),性能与VLESS无加密裸奔持平,是其他组合的数倍,能极大提高设备续航能力,推荐使用(目前客户端只有最新版V2rayNG支持,V2rayN可通过更新V2ray-Core支持)。
服务端注意事项
- VLESS + TLS、VLESS+TLS+WS及其他方案配置请参考 v2ray-examples;
- json文件不支持注释,上面配置文件中的#号和后面内容都应该删去;
- 如果使用了80回落端口,记得安装Nginx或其他web软件:
yum install -y epel-release; yum install -y nginx
; - 记得放行防火墙:
firewall-cmd --permanent --add-service=https; firewall-cmd --permanent --add-service=http; firewall-cmd --reload
; - 如果无法启动,请查看是否开启了SELINUX:
getenforce
,输出为Enforcing请禁用:setenforce 0
,然后重启v2ray journalctl -xe -u v2ray --no-pager
可查看V2ray的系统日志- 建议添加V2ray运行日志输出,方便出问题时排查
VLESS客户端配置
服务端配置好后,接下来介绍客户端配置VLESS。
支持VLESS协议的客户端
VLESS协议在V2ray-Core v4.27.0版本中引入,XTLS在V2ray-Core v4.29.0引入。因此如果使用VLESS协议,请确保客户端的内核版本至少是v4.27.0,使用XTLS功能则保证内核至少为4.29.0版本。
目前各平台有如下客户端支持VLESS:
- 支持VLESS协议的Windows客户端:
- V2rayN:3.21版本开始支持VLESS协议,3.24版本支持XTLS。目前最新版是3.26,完美支持VLESS + XTLS组合,并且支持trojan协议;
- Qv2ray:2.6.3版本开始支持VLESS协议,2.7.0 alpha1版本支持XTLS。目前最新版是2.7.0 alpha1,完美支持VLESS + XTLS组合;
- 支持VLESS协议的安卓客户端:
- V2rayNG:1.3.0版本支持VLESS协议,1.4.4版本支持XTLS。目前最新版1.4.8,完美支持VLESS + XTLS组合,还支持trojan协议。注意:V2rayNG自1.4.5版本开始不提供全架构的客户端,如果本站版本无法安装和使用,请从官网下载对应平台版本。
- 支持VLESS协议的Mac客户端:
- Qv2ray:2.6.3版本开始支持VLESS协议,2.7.0 alpha1版本支持XTLS。目前最新版是2.7.0 alpha1,完美支持VLESS + XTLS组合;
- V2rayU:3.0预览版支持VLESS+XTLS和trojan
- 支持VLESS协议的iOS客户端:
- Shadowrocket:2.1.60版本支持VLESS协议,
目前不支持XTLS(2020.11.25更新:2.1.67版本已经支持XTLS,flow默认为xtls-rprx-direct,无法选择)
- Shadowrocket:2.1.60版本支持VLESS协议,
- 支持VLESS协议的Linux客户端:
- Qv2ray:2.6.3版本开始支持VLESS协议,2.7.0 alpha1版本支持XTLS。目前最新版是2.7.0 alpha1,完美支持VLESS + XTLS组合;
- V2rayA:V2rayA是一个依赖于V2ray的UI工具,因此需要自行安装V2ray。V2rayA自1.0.0版本支持VLESS,可通过自行编辑配置文件支持XTLS;
上面提到的V2ray客户端均可到 V2ray客户端 页面下载。比较遗憾的是颜值非常高的Clash系列目前都不支持VLESS,iOS的小火箭尚未发布支持XTLS的版本。
VLESS客户端配置教程
本文以Windows平台的V2rayN软件为例,介绍VLESS+XTLS的客户端配置教程。
1. 从 V2ray客户端 下载客户端,解压文件;
2. 进入V2rayN-Core文件夹,双击V2rayN.exe启动;
3. 屏幕右下角托盘找到V2rayN图标,双击打开面板菜单。点击上方的“服务器”-》“添加[VLESS]”服务器:
4. 配置VLESS+XTLS信息。流控与服务端配置一致(建议服务端和客户端都使用“xtls-rprx-direct”),加密必须填“none”,别名可以自己随便填。协议传输选“tcp”,在伪装域名里输入你的域名,底层传输选“xtls”,跳过证书验证选true和false都可以(能保证证书总是有效就选false,否则选true)。配置好后点击“确定”保存;
5. 点击“参数设置”,Http代理选择全局模式或者PAC模式,建议为PAC模式:
接下来,就可以愉快的上Google、Youtube等网站了。
总结
VLESS+XTLS,可以说是目前最强悍的科学上网组合,强烈建议使用。如果客户端不支持XTLS,在使用TLS的情况下,也建议切换到VLESS协议。
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) –version 4.32.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 22454 100 22454 0 0 79684 0 –:–:– –:–:– –:–:– 79907
info: Installing V2Ray v4.32.1 for x86_64
Downloading V2Ray archive: https://github.com/v2fly/v2ray-core/releases/download/v4.32.1/v2ray-linux-64.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
100 11.9M 100 11.9M 0 0 17.3M 0 –:–:– –:–:– –:–:– 17.3M
Downloading verification file for V2Ray archive: https://github.com/v2fly/v2ray-core/releases/download/v4.32.1/v2ray-linux-64.zip.dgst
error: SHA256 check failed! Please check your network or try again.
你好,执行bash报错,服务器网络应该是没问题的 这个怎么处理
换个版本,可能这个版本没有摘要信息
听说XTLS因为原始数据TLS1.2加密和VLESS加密请求头用了TLS1.3,导致流量会有非常好抓的特征,所以不太敢用XTLS。
现在xray出了vision,挺厉害的
请问mac客户端咋配置?
可以 v2ray客户端 中的配置教程
时间是2023年1月7日,昨天刚配好V2ray+VLESS+XTLS,今天早上就发现443端口就被封了,也没有用多少流量,看来这种模式已经被识别,大家可以自行验证一下
vless,苹果手机除了能用shadowrocket, 还能用哪个软件
好像有个ileaf,不过需要自己写配置文件
大佬如何看待Hysteria,比起V2RAY可靠吗?
没有详细了解过,应该不会超过v2ray
大佬好,我看您的教程距现在也有一定的时间了,请问下现在适合的方案是哪个?v2ray的vless+xtls方案适用v4.29.0-v4.32.1,现在v2ray已经更新到v5.1.0版本了,这个方案会损失掉v2ray的新更新内容吧。是不是xray+vless+xtls更适合些?
根据最新动向,推荐用vmess+tls
请问为什么现在您更推荐用 vmess + tls ?感谢!
vless在新版的v2ray中被废弃了
https://github.com/v2ray/v2ray-core/issues/2523
VMESS的这个问题解决了嘛
套了TLS就不用关心这个
请教两个问题。
1.为什么vless+tcp+xtls组合中一定要用fullchain.crt?我一开始使用了cloudflare提供的证书文件,后台报bad certificate,但是cloudflare的证书文件我用来搭别的https网站是没有问题的。这里令我很困惑,请赐教。
2.请问vless+xtls和vless+tls在性能和安全性上有什么差异吗?
应该是xray不会去在线拉取证书链,因此需要全链证书信息;xtls和tls在性能上应该有差异,安全性不是特别清楚
请问大佬一个vps可以开多个vless+xtls的节点吗
当然可以
使用vless+xtls谷歌频繁让进行人机验证是否正常
和服务器ip有关,和所用的技术无关
想咨询下大佬 目前在用TROJAN 全局后能访问网站但是ping不通 换VLESS+XTLS能解决这个问题吗
不能
Please refer to https://curl.haxx.se/libcurl/c/libcurl-errors.html for error code: 60
Can not init api for: https://acme-v02.api.letsencrypt.org/directory. ????????
证书中心有问题,再等等或者换个系统
vmess现在是不能用了吗,我之前用vmess配置的Mac端可以连,iOS连不上
可以用,是你ios配置错了
大佬请问下,手机客户端能连,wifi连不上是为什么呢?
这几天为啥特别卡啊?网速好慢
没感觉
我搞错了,手机客户端用数据连接还是很顺畅的,但家里电脑用wifi就死活连不上,不知道为什么
博主的教程很有用!但对于VLESS + XTLS组合的数据安全性不太明白。
我看了XTLS的介绍,XTLS会和网站本身的TLS合二为一从而无需多次加解密以提升性能,而VLESS协议本身也是不加密的,那么是否意味着浏览非HTTPS网站的时候从浏览器到目标网站的流量是没有任何加密的?
其他的应用程序(比如SSH/SFTP客户端)通过VLESS + XTLS代理服务器联网的时候中间人也能看到其中的流量吗?
不是你认为的这样。VLESS+XTLS工作方式是这样的:如果访问https网站,建立连接后直接用到目标网站的https加密;如果访问非https网站,则客户端到服务器之间使用伪装网站的https加密,中间人看不到流量
原来如此。我用一键脚本搭建VLESS + TCP +TLS + WS 和 VLESS + TCP + XTLS的网速都很快,后者的速度的确会快一点,客户端用的是v2rayN,但是使用SSH/SFTP客户端设置走以上两种代理来连接都会频繁断线,经常需要重新登录很是烦人,直连不走代理的话就很稳定不会断线。
为什么会这样呢?能否修改v2ray服务端/客户端的参数或者某些系统设置解决这个问题?
建议使用sreen指令,可以创建一个linux中的“窗口”,即使ssh掉线登陆后也可以重新恢复对话。
安卓v2rayNG 配置vless+tcp+xtls,一直用不了,但是Windows 客户端能用
配置错了
我的一个手机,安卓8的,也是用不了,装了最新版的V2RAYNG也不行,后来换了anxray。 另一个安卓10的就没问题
可能是系统问题
大佬,更新订阅时显示”无法连接远程服务器”是什么原因
订阅网址挂了
大佬,vps已经有一个Vless+tls+ws, 再装一个Vless+xtls 可行吗
可以
问下大佬,安装了您的vless+xtls,现在ios小火箭更新到最新,有vless,有xtls direct v4.32.1+ ,但是传输方式只有,none ,http,h2,websocket,mkcp,应该怎么配置啊
选none
回复“回落是解密流量,所以要回落到80端口”,我尝试改成www.baidu.com:80,也是不行的。我查阅了项目issue,发现有人提出了相关的issue,此issue打上了enhancement的标签,并且处于打开状态。
https://github.com/XTLS/Xray-core/issues/292
因此,截止至1.3.1版本,应该是不支持回落到其他网站的,请对教程内容进行修改以防误导
收到,感谢指正
测试了一下,回落的解释是正常的。至于为什么回落不成功,因为流量转发的时候没有设置host,许多web服务器会拒绝访问
刚试了一下,截止1.3.0版本,回落貌似不能直接转给其他网站(例如百度)
有什么提示?
直接无法运行
那就是配置文件有问题
将www.baidu.com:443改回80之类的端口号就能够正常运行,由此可见不能够直接回落到其他网站
回落是解密流量,所以要回落到80端口
如何配置对应的域名也可以用浏览器打开,做更进一步伪装
建议一键脚本,或者自己做个伪装网站,然后设置好回落
大佬,这个VLESS+XTLS对比WS+TLS哪个安全一些?我不太在乎性能,只在乎能不断线,有没有推荐的协议?刚搭好的前几个月都将近50000kbps,半年多之后就变得断流了。
安全性几乎一样,推荐你用vless+tls+ws
求一个墙内的 httpp伪装模式
自己部署或者付费购买
大佬这是怎么会使?
v2ray.service – V2Ray Service
Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/v2ray.service.d
└─10-donot_touch_single_conf.conf
Active: failed (Result: exit-code) since Fri 2021-02-19 22:10:00 HKT; 47s ago
Docs: https://www.v2fly.org/
Process: 122308 ExecStart=/usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json (code=exited, status=255)
Main PID: 122308 (code=exited, status=255)
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Main process exited, code=exited, status=255/n/a
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Failed with result ‘exit-code’.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Service RestartSec=100ms expired, scheduling restart.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Scheduled restart job, restart counter is at 5.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: Stopped V2Ray Service.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Start request repeated too quickly.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: v2ray.service: Failed with result ‘exit-code’.
Feb 19 22:10:00 Kcloud006147607065 systemd[1]: Failed to start V2Ray Service.
[root@Kcloud006147607065 v2ray]#
setenforce 0,然后再运行
大佬,你看服务端配置没问题为啥最后 ss -nltp | grep v2ray不显示监听呢?而且因为上不了网[root@Kcloud006147607065 v2ray]# v2ray -config /usr/local/etc/v2ray/config.json -test
V2Ray 4.32.1 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.15.4 linux/amd64)
A unified platform for anti-censorship.
2021/02/19 21:28:11 [Info] v2ray.com/core/main/jsonem: Reading config: /usr/local/etc/v2ray/config.json
Configuration OK.
[root@Kcloud006147607065 v2ray]# systemctl restart v2ray
[root@Kcloud006147607065 v2ray]# ss -nltp | grep v2ray
[root@Kcloud006147607065 v2ray]#
谢谢大佬,微软能进就是谷歌进不了
服务器或者客户端配置有问题
大佬,执行完bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) –version 4.32.1之后不是要置/usr/local/etc/v2ray/config.json文件,我按你的执行/usr/bin/v2ray/v2ctl uuid显示没有目录和文件,我打开/usr/bin发现我里面就没有
/v2ray目录,难道我之前缺了啥步骤吗?望大哥解答
v2fly的文件,目录在/usr/local下,比如v2ray在/usr/local/bin/v2ray,配置文件是/usr/local/etc/v2ray/config.json。你要生成uuid,就要运行/usr/local/bin/v2ctl uuid
[root@Kcloud006147607065 ~]# cd /usr/local/bin
[root@Kcloud006147607065 bin]# cat /v2ctl
cat: /v2ctl: No such file or directory
[root@Kcloud006147607065 bin]# cat /v2ctl uuid
cat: /v2ctl: No such file or directory
cat: uuid: No such file or directory
大佬还是找不到
复制这条命令,直接运行
基础这么差,不建议自己部署,花钱买别人的服务吧
“id”: “”, // 填写UUID,可以使用/usr/bin/v2ray/v2ctl uuid生成
这个在哪里?我在服务端/usr/bin/找不到
usr/bin/v2ray/v2ctl uuid
付费付费的
建议参考一键脚本,很简单的