欢迎加入tg群交流:@tlanyantg
前文 “V2Ray教程” 介绍了V2Ray
基本用法,本文介绍V2Ray
高级使用技巧:流量伪装。客户端下载请访问:V2ray客户端,拯救被墙的服务器请参考:拯救被墙的服务器。
为何需要流量伪装
自设立墙以来,我国的网络封锁技术一直是全球领先的。有方校长等人持续做贡献,封锁和干扰技术也在不断演化和进步。传统的VPN、ssh隧道等科学上网方式渐渐被墙识别和干扰,访问境外网站越来越难,倒逼网民不断推动穿墙技术的发展。
科学上网这些年来,见证了诸多技术的兴起和消沉,自架服务器被绊者更是数不胜数。经历过谈笑风生的岁月,才知闷声发大财是人生真理。翻墙技术同样如此,一是不要高调和张扬,否则大概率被打击和屏蔽;其次流量尽量与常见流量接近,不要特立独行,例如使用非常用端口、自定义奇怪的协议。本文介绍的V2ray伪装便是将穿墙流量以常见的HTTPS/TLS包装,大大降低vps被墙或被干扰的可能性,在敏感时期提供稳如狗的上外网体验。
V2ray发布了新版的VLESS协议,强烈推荐使用,详情请参考 V2ray的VLESS协议介绍和使用教程
推荐使用XTLS+Splice技术的Xray,详情参考:Xray教程
V2ray流量伪装前提条件
本文假设读者已经具备以下条件:
- 一台境外的vps,购买可参考:一些VPS商家整理;
- 一个域名,无备案要求(备案可使用国内CDN加速,但意味着万一有事,被喝茶更容易)。域名购买可参考:Namesilo域名注册和使用教程 或从 适合国人的域名注册商推荐 选购;
- 为域名申请一个证书,请参考:使用acme.sh签发证书 或 从阿里云获取免费SSL证书(伪装域名用来做站推荐使用);
- 有基本linux技巧,能使用vim/nano等编辑器。
理论上来说,证书不是必须的。但没有tls加持或不做加密,防火墙直接能看出来流量真实意图从而进行干扰,这也是为什么不建议伪装http流量的原因。本文给出的方法采用合法机构签发的证书对流量进行加密,不是做特征混淆得到的TLS流量,从而更难被检测和干扰。
关于伪装技术的选择,V2ray web+websocket+tls 和 V2ray web+http2+tls 常用来做对比。理论上http2省去了upgrade的请求,性能更好。但实际使用中两者没有明显区别,加之某些web服务器(例如Nginx)不支持后端服务器为http2,所以websocket的方式更流行。如果你要上http2,记得web服务器不能用Nginx,要用支持反代http2的Caddy等软件。
下文介绍流量伪装的配置步骤,演示域名为tlanyan.pp.ua
,服务器为Linux(CentOS),web服务器软件用Nginx,web+websocket+tls组合,最终效果为:http/https方式打开域名,显示正常的网页;V2Ray
客户端请求特定的路径,例如https://itlanyan.com/awesomepath
,能科学上网;浏览器直接请求https://itlanyan.com/awesomepath
,返回”400 bad request”。即外部看起来完全是一个人畜无害的正规网站,特定手段请求特定网址才是科学上网的通道。
注意:如果使用伪装后网速慢,可尝试更轻量级的trojan,请参考:trojan教程。
V2ray流量伪装教程
服务端涉及到了Nginx和v2ray,分别介绍其配置。
1. 配置dns
先设置dns将域名解析到vps的ip,例如tlanyan.pp.ua
解析到xxx.xxx.xx.xx。
如果你上了CDN,则dns要解析到cdn给的ip或者别名网址(cname)。使用cdn能隐藏真实vps的ip,避免vps被墙或能拯救被封锁ip的vps。上cdn有好处,但国内cdn要求域名备案,国外cdn基本上会降低网速,而且配置起来稍显麻烦。建议新手先摸透https流量伪装,有特殊需求再考虑上cdn。
注意:如果你要用Let’s Encrypt签发的证书,并且希望上cdn,那么应该先解析到vps的ip,获取到证书后再解析到cdn。
更新:上cdn可参考:v2ray使用cloudflare中转流量,拯救被墙ip,请务必记得先让伪装正常工作再上cdn!
2. 配置Nginx
如果你的域名并正确配置了SSL证书,可忽略这一步。
Nginx是市面上占有率最高的网站服务器软件,Centos 7系统安装nginx命令:yum install -y epel-release && yum install -y nginx
。
Linux系统上Nginx默认站点配置文件是/etc/nginx/conf.d/
目录下的default.conf
(debian/Ubuntu系统路径是 /etc/nginx/site-enabled/default.conf
),我们对伪装网站进行全站https配置,示例内容如下:
server {
listen 80;
server_name xxxxx; # 改成你的域名
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl http2; # 不再推荐使用443端口,可以使用8000-9000之间的端口
server_name xxxxx;
charset utf-8;
# ssl配置
ssl_protocols TLSv1.2 TLSv1.3; # tls 1.3要求nginx 1.13.0及以上版本
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_certificate xxxxx; # 改成你的证书地址
ssl_certificate_key xxxx; # 改成证书密钥文件地址
access_log /var/log/nginx/xxxx.access.log;
error_log /var/log/nginx/xxx.error.log;
root /usr/share/nginx/html;
location / {
index index.html;
}
}
鉴于目前443端口容易被墙,推荐使用8000-9000之间的端口号,例如8080、8443、8090等
配置好用nginx -t
命令查看有无错误,没问题的话systemctl restart nginx
启动Nginx。打开浏览器在地址栏输入域名,应该能看到https访问的Nginx欢迎页。
新域名如何快速做一个像模像样的网站?最简单的办法是从网上下载网站模板,上传到web服务器的根目录(默认是/usr/share/nginx/html
)。对于伪装站来说,静态站足够。如果你的境外流量比较大,建议用爬虫或者其他手段做一个看起来受欢迎、流量大的站点,例如美食博客,图片站等。
3. 安装配置V2Ray
详细过程可参考上篇:V2Ray教程。为了让V2ray能正常运行,请确认防火墙已放行对应端口,并且关闭了selinux:setenforce 0
。
到此为止,Nginx和V2ray应该都能各自独立正常工作。如果有一个出现问题,应该先解决再继续下面的操作。
4. Nginx配置websocket
接下来我们让Nginx和v2ray结合,完成服务端的配置。
首先我们选择一个伪装路径,建议为二级或者较长的一级路径,例如/abc/def
或/awesomepath
。
配置Nginx将伪装路径的访问都转发到v2ray。编辑/etc/nginx/conf.d/default.conf
的第二个server
段,增加以下转发配置:
location /awesomepath { # 与 V2Ray 配置中的 path 保持一致
proxy_redirect off;
proxy_pass http://127.0.0.1:12345; # 假设v2ray的监听地址是12345
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
配置好后重启Nginx:systemctl restart nginx
。
配置v2ray接受Nginx传来的数据。编辑 /usr/local/etc/v2ray/config.json
文件,在“inbounds”中新增“streamSetting”配置,设置传输协议为“websocket”。配置好后config.json
文件看起来是:
{
"log": {
"loglevel": "warning",
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log"
},
"inbounds": [{
"port": 12345,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "xxxxx", # 可以使用/usr/bin/v2ray/v2ctl uuid生成
"level": 1
}
]
},
"streamSettings": { # 载体配置段,设置为websocket
"network": "ws",
"wsSettings": {
"path": "/awesomepath" # 与nginx中的路径保持一致
}
},
"listen": "127.0.0.1" # 出于安全考虑,建议只接受本地链接
}],
"outbounds": [{
"protocol": "freedom",
"settings": {}
},{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}],
"routing": {
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "blocked"
}
]
}
}
注意:
1. json文件不支持注释,上述配置中”#”号及后续内容都要删掉;
2. 可以使用命令检查配置是否存在错误:
/usr/bin/v2ray/v2ray test -config /usr/local/etc/v2ray/config.json
配置无误后,重启v2ray服务:systemctl restart v2ray
。
如何测试nginx与v2ray结合没有问题?打开浏览器,输入域名及其他路径,应该显示正常网页或者页面不存在,说明Nginx正常工作;输入域名加v2ray路径,例如https://itlanyan.com/awesomepath
,应该出现”Bad Request”,说明Nginx将流量转发给了v2ray,并且v2ray收到了请求。
客户端设置
最后是配置客户端,本文以Windows平台的V2RayW
软件为例说明使用方法。
打开V2RayW
,右键托盘图标,点击“配置”。在弹框中新建或修改已有的服务器,输入服务器ip,端口写443,把用户id、额外id信息填上,网络类型选择”ws”。接着点“传输设置”,找到“websocket”,路径一栏输入nginx和v2ray中的路径,例如“/awesomepath”;http头部输入:
{
"Host":"你的域名,例如tlanyan.pp.ua"
}
截图如下:
接着点击“tls”,勾选“启用传输层加密tls”(同时建议勾选“允许不安全的加密方式”和“允许不安全连接”),在“服务器域名”的输入框中输入域名,截图如下:
信息填写正确后,点击“保存”。打开浏览器访问google.com,youtube.com等网站,配置无误的话应该都能正常打开。
因为启用了TLS,因此VMESS配置界面的加密方式(security)建议配置为none,以节省cpu,提高设备续航能力
如果对nginx/v2ray以及客户端的配置不熟悉,建议使用这个v2ray配置生成工具:v2ray配置生成。
V2ray流量伪装总结
https/tls会加密路径信息,仅靠中间环节捕捉到的流量包极难区分是正常请求还是夹带私货的流量。这也显示了v2ray的强大之处:通过配置不同的协议和载体,就能对进出的流量做定制。从流量伪装、反向代理的功能上看,v2ray毫无疑问的是一个强大的网络框架/工具,科学上网功能只是其一个成功应用。
比较让人遗憾的是v2ray的ios客户端均收费,客户端下载请访问:V2ray客户端下载。
还有就是输入伪装的路径之后网页提示502或者404,而不是bad requst,不处理这个问题有没有什么影响?
有影响,说明nginx和v2ray没有配置好
但是v2ray通过伪装路径能够正常运行
那就神奇了,能运行你就用着吧
我想起来了,我在伪装路径下面配置了这个
if ($http_upgrade != “websocket”) {
return 404;
}
博主你好,我使用oneindex搭了一个onedrive盘,ssl加密,并使用这个oneindex站点做v2ray的web伪装,会比普通的静态web好点吗?
会好一些
大佬你好,v2ray没配置streamSettings块前,可以正常使用;nginx也可以正常用。但是两者一结合,就不行啦
有可能是哪里出问题呢?我用的mac客户端,参照您windows的配置也感觉没啥问题了
谢谢
你的意思是结合后windows客户端能用,mac不行?
为什么我打不开cd/etc/nginx/conf.d/default.conf 只能进入到nginx目录 下一级目录说找不到该目录和文件
cd /etc/nginx/conf.d
然后再编辑文件
目录不存在创建一个,或者直接编辑/etc/nginx/nginx.conf文件
直接编辑nginx.conf和编辑conf.d/default.conf是一样的吗?
直接编辑/etc/nginx/nginx.conf和上面写的不一样
建议你直接用一键脚本吧,省心
如果想研究,可以看看一键脚本怎么写的
求问一下,本身服务器是支持IPV6的,如果想要使用IPV6访问部分网站,需要如何设置?
看这个教程:添加ipv6支持
运行完脚本后显示的配置信息,怎么回看?忘记记录了
运行哪个脚本?如果是看id,可以用这个命令:
cat /etc/v2ray/config.json | grep id
,看alterid用这个命令:cat /etc/v2ray/config.json | grep -i alterid
好的,谢谢
请勿扩散,否则封停
成功部署,谢楼主!
我的AWS启动虚拟机后,不停的转圈,转了10分钟了,请问有这么慢吗?
不会,有可能是aws的页面卡了,启动一般一两分钟就完成了
感谢作者,我按照您的教程已经成功配置好了,用v2rayW可以科学上网。
但自己尝试配置v2rayN却失败了。
请问v2rayN如何配置流量伪装?
配置都差不多的啊,注意v2ray默认不开启pac代理,要去软件设置里打开
谢谢回复,我尝试开启PAC和全局模式了,但v2rayN还是不能用。
我怀疑是我添加Vmess服务器的时候,「伪装域名」和「路径」这两项填写有误,
请问可以提供一个填写示例吗?
伪装域名例如www.tlanyan.pp.ua,伪装路径例如/abcdef
谢谢,最后我解决了。
「伪装域名」那一栏是缺省的不用填写,v2rayN就正常可用了。
我之前填写了我自己的域名。
按你上一篇教程来搭建了v2ray,并且在这之前已经用nginx搭建了wordpress,也搭建了v2ray,都可以使用
按你教程来之后v2ray就用不了了,访问路径得到的不是bad request而是502
wordpress仍然可以访问
然后用service v2ray status看到状态是active,日志也没有看到有问题出现
没开selinux
求解
估计是selinux的问题,检查selinux状态:
getenforce
,如果显示”enforcing”,那么用这个命令关闭:setenforce 0
配置nginx后, 打开浏览器在地址栏输入域名,应该能看到https访问的nginx欢迎页。server_name, ssl_certificate, ssl_certificate_key都改了, 我看到的只是centos欢迎界面, 导致后面的所有都配置好,也不能上网…
页面是https吗加?伪装路径出现啥?
nginx: [warn] server name “https://$server_name$1” has suspicious symbols in /etc/nginx/conf.d/default.conf:4
nginx: [emerg] invalid server name or wildcard “^(.*)” on 0.0.0.0:80
nginx: configuration file /etc/nginx/nginx.conf test failed
命令nginx -t返回上面,请问问题在哪,不胜感激
server_name要改成你的域名
我按照配置一步一步来的 当前已把502 bad gateway问题变为bad request , 80 443页面显示正常
可是用小火箭显示超时 还是无法打开谷歌 服务器端v2ray无生成日志
v2ray端口及nginx的80 443 都已开启 且防火墙关闭
telnet v2ray端口连接失败 但80 443可以telnet
请教大神,我改如何排查呢 nginx日志 只体现了测试502 404的信息 其他无
已关闭selinux
小火箭配置的端口是什么?
和服务端的一样 34722
我发觉其他人的v2ray端口 是可以telnet的 但我的不可以
也不像是被墙了 我用了国外测试端口的 也显示关闭
但netstat -ntlp 能显示出端口:
[root@li219-249 ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:34722 0.0.0.0:* LISTEN 1013/v2ray
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1428/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1011/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1428/nginx: master
tcp6 0 0 :::80 :::* LISTEN 1428/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1011/sshd
你要用443,不能用v2ray 的端口,而且v2ray 监听的本地,外面是telnet不过去的
非常感谢! 坛主解释的也很明白. 已经可以了 :p
问下与cloudflare衔接 需要做什么配置吗 比如 api啥的
有没有相关链接 分享下?
全站https的要用严格(strict)模式,其他不需要任何配置
建议你谨慎上cloudflare,因为在国内速度不快,号称减速云
感谢分享 简单几句话提供了几个关键部分 太感谢啦 已赞
正在看客户端配置免流 发现配置文件中的 “streamSettings”: {)段落的host等配置已被占用
期待坛主有空研究下 并分享出来哈 感谢!
免流我没玩过,如果又要免流又要上外网,可能要多琢磨下
收到
cloudflare果然是慢的不得了 且dospod据悉是被腾讯收购了 不放心用
问下有推荐的cdn吗 国外身份的
国内的cdn都要求备案的,国外免费的巨慢,收费的你还不如自己买个服务器中转一下
请问博主,我用的是VULTR的服务器,创建服务器后不管是用SS还是V2R(包括流量伪装),在一段时间后就无法连接了。重启SS或V2R又能连接,这要如何解决?
听起来是内存泄漏了?不过没听说这两个服务端有这种问题
不对,SS重启也连不了,V2R重启就能连,(我说的都是客户端),SS是之前复活了一次…感觉是被墙检测到…
被墙检测到就老老实实用伪装吧,可能有点扰动,用起来稳如狗
域名去哪买
阿里云、腾讯云、百度云、godaddy、namecheap等都可以
伪装成功,浏览器输入域名或ip直接显示我放的静态页面,PC端的V2rayNG的地址设置为域名或IP都ok,但安卓端的v2rayN不认域名只认ip,是不是安卓客户端需要其他设置?
我安卓用的少,不过按理域名应该也可以,是不是你加http或者https了?
就是写的二级域名,直接扫的pc端的二维码,不过很奇怪,昨天不能连,今天就能连了
我遇到了报accepted tcp:www.google.com:443 [proxy] 的错误。检查了下端口都开了,时间也一样。
然后我使用了4g网络就可以了,有线不可以。请问这是运营商把我墙了么?
嗯,运营商的线路问题
我补充一点可能遇到的问题,如果有人看到希望能帮到你!
当你做完以上所有步骤之后,可能得到的是502 bad gateway而不是bad request,这是因为系统httpd配置不可以连接到网络,查看错误日志是权限拒绝,这个写的如何解决 https://blog.csdn.net/jiangshanwe/article/details/85772335 ,如果还是bad gateway改nginx的权限就好了.
禁用selinux就没有这个问题
ws+tls+web,这里伪装域名是随便写,还是必须是自有的这个域名。
必须有这个域名,而且域名解析要正确
意思是说,我用域名abc.tk来搭建,伪装域名可以是amazon.com吗,还是必须是abc.tk。
正常来说要用abc.tk,否则设置错误就无法连接
在设置/etc/nginx/conf.d/default.conf的时候,ip加80端口会跳转到域名,可是还是无法访问,连欢迎页都没出现
server {
listen 80;
server_name http://www.casolopidia.live;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl http2;
server_name http://www.casolopidia.live;
charset utf-8;
ssl_ecdh_curve secp384r1;
ssl_certificate 正确填写;
ssl_certificate_key 正确填写;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
keepalive_timeout 70;
include /etc/nginx/default.d/*.conf;
access_log /var/log/nginx/www.casolopidia.live.access.log;
error_log /var/log/nginx/www.casolopidia.live.error.log;
root /usr/share/nginx/html;
location / {
index index.html;
}
}
servername不要加http
502
日志
connect() failed (111: Connection refused) while connecting to upstream,
v2ray没有启动或者v2ray端口错误,或者开启了selinux
老哥可以帮我看一下我这个配置吗
{
“stats”: {},
“log”: {
“loglevel”: “warning”
},
“policy”: {
“levels”: {
“8”: {
“handshake”: 4,
“connIdle”: 300,
“uplinkOnly”: 1,
“downlinkOnly”: 1
}
},
“system”: {
“statsInboundUplink”: true,
“statsInboundDownlink”: true
}
},
“inbounds”: [
{
“tag”: “socks”,
“port”: 10808,
“protocol”: “socks”,
“settings”: {
“auth”: “noauth”,
“udp”: true,
“userLevel”: 8
},
“sniffing”: {
“enabled”: true,
“destOverride”: [
“http”,
“tls”
]
}
},
{
“tag”: “http”,
“port”: 10809,
“protocol”: “http”,
“settings”: {
“userLevel”: 8
}
}
],
“outbounds”: [
{
“tag”: “proxy”,
“protocol”: “vmess”,
“settings”: {
“vnext”: [
{
“address”: ” “,
“port”: 10086,
“users”: [
{
“id”: “a3482e88-686a-4a58-8126-99c9xxxxxxbf”,
“alterId”: 64,
“security”: “auto”,
“level”: 8
}
]
}
],
“servers”: [
{
“address”: “”,
“method”: “chacha20”,
“ota”: false,
“password”: “123456”,
“port”: 10086,
“level”: 8
}
]
},
“streamSettings”: {
“network”: “tcp”
},
“mux”: {
“enabled”: false
}
},
{
“protocol”: “freedom”,
“settings”: {},
“tag”: “direct”
},
{
“protocol”: “blackhole”,
“tag”: “block”,
“settings”: {
“response”: {
“type”: “http”
}
}
}
],
“routing”: {
“domainStrategy”: “IPIfNonMatch”,
“rules”: []
},
“dns”: {
“hosts”: {},
“servers”: []
}
}
什么问题?
客户端配置不对,不知如何配置,就拿v2ray为例吧,谢谢了
请问博主,windows已经配置好了,并且可以使用,但是我用安卓的v2rayNG的时候配置好了,但是无法访问谷歌,能不能请教一下,安卓怎么配置
到下载页面去看配置教程
起飞后上外网为啥显示无法提供安全连接?
如果确定自己域名证书没有问题,清空浏览器缓存,然后重新打开浏览器试试。或者直接换个浏览器试试
博主,备案的域名流量来往更顺畅,这句话不明白,难道备案的域名还有加成?
备案域名的流量一般直接放行,不会进入检测名单
博主你好,请问这个可以和宝塔面板共存吗?可以的话要怎么做?
可以的。安装教程安装和配置好v2ray,接着在宝塔控制面板里安装nginx。然后复制教程中的配置,粘贴到宝塔里的nginx配置,修改端口号和id,重启nginx,配置没问题的话应该就能用了
大佬能讲讲如果是用caddy的话要怎么配置么,感觉这个比nginx略方便些
有空我加进去
谢谢作者,成功了。一直用的是ssr,发现总是间歇性的断线,这个断线与网上别人反馈的都不一样,这个是ping 不通,SSH掉线,更不用说访问了。大概是在用的时候,每隔几分钟断线一次,但是如果突然打开一个视频,流量突然增加,那么马上断线,所以我猜想的是我的IP其实已经被盯上了,但是没有封。我自己尝试更改过端口,没有用,马上也能够被识别,结果与上面一样。
现在按照博客主的教程搭好,确实可以了。不过也没有长时间测试,仅仅只有3,4个小时。我只想用google查询资料而已,百度一点也不能用,再说国家这么好,我也没有任何反对的言论,确实感觉这个屏蔽对于学习真的有很大的伤害。
还有其实说的轻松,但是如果自己搭建的话,确实特别难,因为需要知道Linux的相关知识。很多小问题并不是别人都有反馈的,你需要懂相关才行。总之感谢作者。
有没有apache2 配置的教程
我没有用过apache2的proxy模块,不过应该和nginx差不多
大神,nginx和v2ray都能单独工作,但是请求v2ray路径,出现的502 bad gateway,这是什么原因?
看一下nginx日志
提示permission denied,怎么解决?
估计是selinux造成的,用
setenforce 0
关掉再试试用了ws之后无法上网,客户端日志提示:failed to find an available destination: all retry attempts failed,以及failed to dial websocket。这应该和ws设置有关吧?
服务端有连接过来吗?看看日志
看了一下,里面都是invalid user,这是连上来了?
有你的ip记录就说明连过来了,v2ray出现invalid user可能是这些原因:
1. uuid不对
2. alter id不对
3. 服务端和客户端时间相差太大
逐个检查一下吧
晕,最后发现竟然是时间相差了7分钟,调整一下时间就好了