今天突然全部无法连接,没排查出问题,不知道怎么回事,。端口是开放的
bbhxwl opened this issue · 25 comments
今天突然全部无法连接,没排查出问题,不知道怎么回事,。端口是开放的
2022/01/01 10:05:44 117.177.110.37:6288 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.
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+)
在服务器端可以通过设置环境变量 v2ray.vmess.aead.forced = true 以关闭对于 MD5 认证信息的兼容。 或者 v2ray.vmess.aead.forced = false 以强制开启对于 MD5 认证信息 认证机制的兼容 (不受到 2022 年自动禁用机制的影响) 。 (v4.35.0+)
请问这个是怎么操作?
实测alterId设置为0就行了, 设为0就代表开启VMessAEAD,而不是VMess md5
现在全新安装都是alterId默认就是0,如果是早期安装的alterId不为0就需要服务端和客户端都需要设置为0,或者环境变量设置: v2ray.vmess.aead.forced = false 来保持配置不变更(如果不是太过麻烦为了安全还是设置为0好点)
在安卓和windows客户端,改为0确实可以用了。
但在ios和mac,改为0还是用不了。
而且我这用alterId=32的设备比较多,
所以想尝试修改环境变量,但我不会修改变量,百度了也没有看懂修改方法,请大神指导一下
@tandalin 怎么设环境变量参考这个: v2ray/v2ray-core#455
修改这个文件: /etc/systemd/system/xray.service,
ExecStart那一行修改成: ExecStart=env xray.vmess.aead.forced=false /usr/bin/xray/xray -config /etc/xray/config.json
再运行:
systemctl daemon-reload
xray restart
如果是v2ray单词全部换成v2ray即可.
在安卓和windows客户端,改为0确实可以用了。 但在ios和mac,改为0还是用不了。 而且我这用alterId=32的设备比较多, 所以想尝试修改环境变量,但我不会修改变量,百度了也没有看懂修改方法,请大神指导一下
以下步骤对我来说ios可用了
1.执行 systemctl status v2ray 命令
2.若步骤1正常输出v2ray的信息 ,观察Drop-In:后面的路径 ,如: Drop-In: /etc/systemd/system/v2ray.service.d
3.进入上述路径 cd /etc/systemd/system/v2ray.service.d
4.执行 ls 命令看是否有一个 .conf后缀的文件,如 10-donot_touch_single_conf.conf
5.vim 修改这个文件: vim 10-donot_touch_single_conf.conf
6. 在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false"
7. 文件修改保存后,再执行 systemctl daemon-reload
8. 执行 systemctl restart v2ray
修改这个文件: /etc/systemd/system/xray.service, ExecStart那一行修改成:
ExecStart=env xray.vmess.aead.forced=false /usr/bin/xray/xray -config /etc/xray/config.json
再运行:systemctl daemon-reload xray restart
如果是v2ray单词全部换成v2ray即可.
修改完后重启出现以下提示 应该是我这边环境问题
[/etc/systemd/system/v2ray.service:18] Executable path is not absolute, ignoring: env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v.../config.json
修改成
ExecStart=/usr/bin/env v2ray.vmess.aead.forced=false /usr/bin/v2ray/v2ray -config /etc/v2ray/config.json
就可以了,希望能帮到同样有这种问题的hxd
在安卓和windows客户端,改为0确实可以用了。 但在ios和mac,改为0还是用不了。 而且我这用alterId=32的设备比较多, 所以想尝试修改环境变量,但我不会修改变量,百度了也没有看懂修改方法,请大神指导一下
以下步骤对我来说ios可用了
1.执行 systemctl status v2ray 命令 2.若步骤1正常输出v2ray的信息 ,观察Drop-In:后面的路径 ,如: Drop-In: /etc/systemd/system/v2ray.service.d 3.进入上述路径 cd /etc/systemd/system/v2ray.service.d 4.执行 ls 命令看是否有一个 .conf后缀的文件,如 10-donot_touch_single_conf.conf 5.vim 修改这个文件: vim 10-donot_touch_single_conf.conf 6. 在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false" 7. 文件修改保存后,再执行 systemctl daemon-reload 8. 执行 systemctl restart v2ray
在安卓和windows客户端,改为0确实可以用了。 但在ios和mac,改为0还是用不了。 而且我这用alterId=32的设备比较多, 所以想尝试修改环境变量,但我不会修改变量,百度了也没有看懂修改方法,请大神指导一下
以下步骤对我来说ios可用了
1.执行 systemctl status v2ray 命令 2.若步骤1正常输出v2ray的信息 ,观察Drop-In:后面的路径 ,如: Drop-In: /etc/systemd/system/v2ray.service.d 3.进入上述路径 cd /etc/systemd/system/v2ray.service.d 4.执行 ls 命令看是否有一个 .conf后缀的文件,如 10-donot_touch_single_conf.conf 5.vim 修改这个文件: vim 10-donot_touch_single_conf.conf 6. 在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false" 7. 文件修改保存后,再执行 systemctl daemon-reload 8. 执行 systemctl restart v2ray
Good job!
服务端怎么知道2022年1月1日要禁用md5认证的,难道在程序里写死了2022年1月1日?
请问要怎么修改这个alterId,没找到修改的地方啊
@MichaelXucf 更改配置里面有修改alterid的
@Jrohy 哦,明白了,用的管理脚本不一样的关系,我的里面没有修改alterId这个选项,我最后卸载重装了。。。不过alterId变为0后还是不行。 我最后还是在启动脚本前面加了 上面提到的 /usr/bin/env v2ray.vmess.aead.forced=false 才解决
看来当前服务端版本强制使用了VMessAEAD,对旧客户端不兼容
ubuntu可参考该链接进行修改 233boy/v2ray#812 (comment)
服务端怎么知道2022年1月1日要禁用md5认证的,难道在程序里写死了2022年1月1日? 而且我是1月7日上午突然出的问题, 排查了一天才发现是这个原因!!!
按照这个解决了。
ubuntu 18.04
- systemctl status v2ray, 查看service 路径
- 修改这个文件 /etc/systemd/system/v2ray.service
在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false" - 文件修改保存后,再执行 systemctl daemon-reload
- 执行 systemctl restart v2ray
ubuntu 18.04
- systemctl status v2ray, 查看service 路径
- 修改这个文件 /etc/systemd/system/v2ray.service
在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false"- 文件修改保存后,再执行 systemctl daemon-reload
- 执行 systemctl restart v2ray
我的CentOS跟这个一样。
ubuntu 18.04
- systemctl status v2ray, 查看service 路径
- 修改这个文件 /etc/systemd/system/v2ray.service
在[service]下添加一行信息: Environment="V2RAY_VMESS_AEAD_FORCED=false"- 文件修改保存后,再执行 systemctl daemon-reload
- 执行 systemctl restart v2ray
我的CentOS跟这个一样。
我的debian跟这个一样
V2RayN/NG也需要升级到最新版就可以了。
我的/lib/systemd/system/v2ray.service有 Environment=“V2RAY_VMESS_AEAD_FORCED=false”但是还是会报错