问题描述:
好几个小伙伴向我反馈,其用一键脚本搭建的V2ray梯子,最近”不好用了”。
大概率的影响因素,就是如本文标题所说的vmess md5认证信息,淘汰机制的影响。
官方的链接说明: https://www.v2fly.org/config/protocols/vmess.html
自 2022 年 1 月 1 日起,服务器端将默认禁用对于 MD5 认证信息 的兼容。
换成大白话就是,在2022-1-1开始,服务端的V2ray会默认自动拒绝旧版的Header,造成客户端发送的连接请求,在服务端进程上被拒绝连接。
常见的报错信息如下:
2022/01/02 16:26:41 127.0.0.1:57634 rejected common/drain: common/drain: unable to drain connection > websocket: close 1000 (normal) > proxy/vmess/encoding: invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received. You can still disable this security feature with environment variable v2ray.vmess.aead.forced = false . You will not be able to enable legacy header workaround in the future.
// 当 alertID >0 时,VMess 出站仍将使用 VMess MD5
// 影响的版本范围 4.35.0
因为,不同平台,不同的客户端,开发者适配工作暂时未完成,且为了兼容很多不懂升级客户端的人,暂时应优先考虑将V2RAY_VMESS_AEAD_FORCED在环境变量中关闭的方式。
处理的办法1
修改systemd服务
修改 /etc/systemd/system/v2ray.service
增加一行内容
Environment="V2RAY_VMESS_AEAD_FORCED=false"
增加完,重启服务即可
systemctl daemon-reload systemctl restart v2ray
处理办法2
修改systemd服务
修改 /etc/systemd/system/v2ray.service
ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json
增加完,重启服务即可
systemctl daemon-reload systemctl restart v2ray
处理办法3
下载旧版本(低于4.35.0)的对应平台的release二进制文件压缩包,解压覆盖到/usr/bin/v2ray/目录
附录1:
# 如果是Docker,修改 docker-compose.yml environment: - 'config/etc/v2ray/config.json' - 'V2RAY_VMESS_AEAD_FORCED=false'
实测,只加了 Environment=”V2RAY_VMESS_AEAD_FORCED=false”,还是不行。最后,我又把 alertID 改为 0,才终于修好了。
直接再xshell 中执行 Environment=”V2RAY_VMESS_AEAD_FORCED=false” 就行了么?我这样执行了还是不行。求大佬指定啊
在vps的,/etc/systemd/system/v2ray.service文件里修改,上面都写出来了,还有alertID,config.json配置为0,客户端(安卓、win10)也为0,还是不行,必须修改service文件。
请查看日志文件 可能在 /var/log/v2ray/ 目录下,查看v2ray程序的报错信息,即可知道是否修改成功