v2ray icon indicating copy to clipboard operation
v2ray copied to clipboard

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

Open songge8 opened this issue 3 years ago • 22 comments

VMess MD5 认证信息 淘汰机制

VMessAEAD 协议已经经过同行评议并已经整合了相应的修改。 VMess MD5 认证信息 的淘汰机制已经启动。

自 2022 年 1 月 1 日起,服务器端将默认禁用对于 MD5 认证信息 的兼容。任何使用 MD5 认证信息的客户端将无法连接到禁用 VMess MD5 认证信息的服务器端。

在服务器端可以通过设置环境变量 v2ray.vmess.aead.forced = true 以关闭对于 MD5 认证信息的兼容。 或者 v2ray.vmess.aead.forced = false 以强制开启对于 MD5 认证信息 认证机制的兼容 (不受到 2022 年自动禁用机制的影响) 。 (v4.35.0+)


应对方法是将服务端和客户端的AlterID改为0,但是脚本好像不支持直接修改,只能通过手工修改配置文件来实现。

更新:新版本已经处理了这个问题,升级最新版本即可

songge8 avatar Jan 05 '22 13:01 songge8

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变为0了,但是还是报同样的错。

最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray

3、核对日志

v2ray log

日志不再报错ok

MichaelXucf avatar Jan 06 '22 04:01 MichaelXucf

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变味为0了,但是还是报同样的错。

最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray

3、核对日志

v2ray log

日志不再报错ok

@MichaelXucf 重装也无法解决吗?全新安装的话,脚本已经添加了那个变量了 😭

233boy avatar Jan 06 '22 15:01 233boy

@233boy 是的,我的不行,也可能是我的客户端的版本比较低,安卓的客户端是v2rayNG v1.2.16(Core V4.26.0), mac的客户端是v2rayX 1.5.1 (Core的版本也是自带的,估计也比较低)

MichaelXucf avatar Jan 07 '22 14:01 MichaelXucf

@233boy 是的,我的不行,也可能是我的客户端的版本比较低,安卓的客户端是v2rayNG v1.2.16(Core V4.26.0), mac的客户端是v2rayX 1.5.1 (Core的版本也是自带的,估计也比较低)

在 v4.28.1 版本后,客户端 AlterID 设置为 0 代表启用 VMessAEAD ;服务端为自动适配,可同时兼容启用和未开启 VMessAEAD 的客户端。 对于 VMess MD5 认证信息的兼容可以被关闭。(v4.35.0+)

@MichaelXucf 如果客户端内核版本太低确实不兼容

233boy avatar Jan 08 '22 06:01 233boy

AlterID 设置为 0,解决了我的问题,👍

TestEngineerFish avatar Jan 10 '22 07:01 TestEngineerFish

最新版本应该是解决了这个问题,大家可以升级试试

songge8 avatar Jan 10 '22 07:01 songge8

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变为0了,但是还是报同样的错。

最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray

3、核对日志

v2ray log

日志不再报错ok

我的是 /lib/systemd/system/v2ray.service, 加了/usr/bin/env v2ray.vmess.aead.forced=false没用,新加了一行Environment="V2RAY_VMESS_AEAD_FORCED=false"就好了

ding-kai avatar Jan 12 '22 06:01 ding-kai

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变为0了,但是还是报同样的错。 最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray 3、核对日志

v2ray log

日志不再报错ok

我的是 /lib/systemd/system/v2ray.service, 加了/usr/bin/env v2ray.vmess.aead.forced=false没用,新加了一行Environment="V2RAY_VMESS_AEAD_FORCED=false"就好了

感谢,我挣扎了这个问题2个星期了,终于解决了。我也是 加了/usr/bin/env v2ray.vmess.aead.forced=false没用,新加了一行Environment="V2RAY_VMESS_AEAD_FORCED=false"就好了

shufanhao avatar Jan 20 '22 09:01 shufanhao

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变味为0了,但是还是报同样的错。 最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray 3、核对日志

v2ray log

日志不再报错ok

@MichaelXucf 重装也无法解决吗?全新安装的话,脚本已经添加了那个变量了 😭

baidu bing查到的那些什么同步时间都是虚的 只有老哥你这个管用! 谢谢你 中国超人! XD

Yuban32 avatar Jan 20 '22 16:01 Yuban32

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变味为0了,但是还是报同样的错。 最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray 3、核对日志

v2ray log

日志不再报错ok

@MichaelXucf 重装也无法解决吗?全新安装的话,脚本已经添加了那个变量了 😭

baidu bing查到的那些什么同步时间都是虚的 只有老哥你这个管用! 谢谢你 中国超人! XD

我测试升级到最新版本就可以解决,重装应该也没问题

songge8 avatar Jan 21 '22 02:01 songge8

将服务端和客户端的AlterID改为0也还是不行(没找到修改alterId的地方,我直接卸载重装了😭),然后重装后alterId已经变为0了,但是还是报同样的错。 最后还是修改v2ray.service文件,添加v2ray.vmess.aead.forced = false解决。 1、修改v2ray.service 文件 vim /etc/systemd/system/v2ray.service

ExecStart=/usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

改成

ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json

2、重启服务 systemctl daemon-reload systemctl restart v2ray 3、核对日志

v2ray log

日志不再报错ok

我的是 /lib/systemd/system/v2ray.service, 加了/usr/bin/env v2ray.vmess.aead.forced=false没用,新加了一行Environment="V2RAY_VMESS_AEAD_FORCED=false"就好了

感谢,我挣扎了这个问题2个星期了,终于解决了。我也是 加了/usr/bin/env v2ray.vmess.aead.forced=false没用,新加了一行Environment="V2RAY_VMESS_AEAD_FORCED=false"就好了

感谢,我也是添加了这行就好了!

yangsa666 avatar Jan 21 '22 03:01 yangsa666

+1

jccode avatar Feb 10 '22 07:02 jccode

我在 v2ray.service 里面发现已经有 Environment="V2RAY_VMESS_AEAD_FORCED=false",但还是连不上,然后改了端口,就连上了。

xiaorong61 avatar Feb 23 '22 02:02 xiaorong61

+1 需要新加一行才行

aaronlam avatar Feb 26 '22 20:02 aaronlam

我在 v2ray.service 里面发现已经有 Environment="V2RAY_VMESS_AEAD_FORCED=false",但还是连不上,然后改了端口,就连上了。

端口你的大概改多少的,谢谢了!我重新安装最新的Linux 乌班图,但还是不行,我觉得应该不是配置的 问题,是端口的问题。

xinxud0ng avatar Feb 27 '22 08:02 xinxud0ng

我在 v2ray.service 里面发现已经有 Environment="V2RAY_VMESS_AEAD_FORCED=false",但还是连不上,然后改了端口,就连上了。

端口你的大概改多少的,谢谢了!我重新安装最新的Linux 乌班图,但还是不行,我觉得应该不是配置的 问题,是端口的问题。

服务器上随便改了个。

xiaorong61 avatar Feb 28 '22 02:02 xiaorong61

VMess MD5 认证信息 玷污机制

为了进一步对抗可能的探测和封锁,自 v4.24 版本起,每个 VMess 认证数据的服务器端结构都会包含一个一次写入的玷污状态标记,初始状态为无瑕状态,当服务器检测到重放探测时或者因为其他原因入站连接出错以致校验数据不正确时,该连接所对应的请求认证数据会被玷污。

被玷污的认证数据无法被用于建立连接,当攻击者或客户端使用被玷污的认证数据建立连接时,服务器会输出包含 "invalid user" "ErrTainted" 的错误信息,并阻止该连接。

当服务器没有受到重放攻击时,该机制对正常连接的客户端没有影响。如果服务器正在被重放攻击,可能会出现连接不稳定的情况。

拥有服务器 UUID 以及其他连接数据的恶意程序可能根据此机制对服务器发起拒绝服务攻击,受到此类攻击的服务可以通过修改 proxy/vmess/validator.go 文件中 func (v *TimedUserValidator) BurnTaintFuse(userHash []byte) error 函数的 atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 1) 语句为 atomic.CompareAndSwapUint32(pair.taintedFuse, 0, 0) 来解除服务器对此类攻击的安全保护机制。使用 VMessAEAD 认证机制的客户端不受到 VMess MD5 认证信息 玷污机制 的影响。

用的docker,果断降级,使用4.24之前的版本 :D,就没有这个问题了:

docker run -d --name v2ray -v /etc/v2ray:/etc/v2ray -p 127.0.0.1:10087:10087 v2fly/v2fly-core:v4.23.4 v2ray -config=/etc/v2ray/docker.config.json

puppylpg avatar Mar 13 '22 16:03 puppylpg

我在 v2ray.service 里面发现已经有 Environment="V2RAY_VMESS_AEAD_FORCED=false",但还是连不上,然后改了端口,就连上了。

端口你的大概改多少的,谢谢了!我重新安装最新的Linux 乌班图,但还是不行,我觉得应该不是配置的 问题,是端口的问题。

服务器上随便改了个。

我客户端上有该打印错误,看了一下日志,客户端一直连接不上服务器,换成了mkcp协议就好了,其他什么也没操作。

flysee100 avatar Apr 04 '22 20:04 flysee100

我在v2ray.service里面已经有Environment="V2RAY_ESS_AEAD_FORCEDfalse",但是还是连不上,然后改了,就连上了。

你大概改了多少的问题,谢谢了!我重新安装的Linux乌班图,但还是不行,我觉得不是配置的,是端口的问题。

服务上顺便改了个。

我一直在记录该打印操作错误,看看,客户端连接不上服务器,换成mkcp协议就好了,其他什么都没有。

这个方法可以,非常感谢,可以连上了,连上后用的很爽,哈哈!

xinxud0ng avatar Apr 05 '22 04:04 xinxud0ng

docker-compose , add the env environment: - "XRAY_VMESS_AEAD_FORCED=false" - "xray.vmess.aead.forced =false"

liam-pat avatar Jun 01 '22 11:06 liam-pat

亲测有效

$ cat v2ray.sh
V2RAY_VMESS_AEAD_FORCED=false /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json &

zhengyhn avatar Jun 04 '22 02:06 zhengyhn

@ding-kai 万分感谢!

leecervan904 avatar Jun 05 '22 15:06 leecervan904

有没有人知道win10怎么办?怎么修改环境变量?

HIMSHUAIBAOHONG avatar Sep 29 '22 05:09 HIMSHUAIBAOHONG

客户端不需要设置,云服务器的v2环境配置文件修改好就行。> 有没有人知道win10怎么办?怎么修改环境变量?

Arimura-Shosuke avatar Oct 23 '22 14:10 Arimura-Shosuke

客户端不需要设置,云服务器的v2环境配置文件修改好就行。> 有没有人知道win10怎么办?怎么修改环境变量?

Arimura-Shosuke avatar Oct 23 '22 14:10 Arimura-Shosuke

仍旧不行 image

EasonTong avatar Feb 11 '23 06:02 EasonTong

我试过alertId、启动命令参数,都不行。 我升级了客户端(v2ray-N)之后,问题得到解决。

jiangshanwe avatar Apr 18 '23 05:04 jiangshanwe