mirror of https://github.com/v2ray/v2ray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dependabot/github_actions/codecov/codecov-action-5
master
archive
v4.18.0
v4.17.0
v4.16.3
v4.16.2
v4.16.1
v4.16.0
v4.15.1
v4.15.0
v4.14.2
v4.14.1
v4.14.0
v4.13.0
v4.12.0
v4.11.0
v4.10.0
v4.9.0
v4.8.0
v4.7.3
v4.7.2
v4.7.1
v4.7.0
v4.6.6
v4.6.5
v4.6.4
v4.6.3
v4.6.2
v4.6.1
v4.6.0
v4.5.0
v4.4
v4.3
v4.2
v4.1.1
v4.1
v4.0.2
v4.0.1
v4.0
v3.50.2
v3.50.1
v3.50
v3.49
v3.48
v3.47
v3.46.4
v3.46.3
v3.46.2
v3.46.1
v3.46
v3.45.1
v3.45
v3.44
v3.43
v3.42
v3.41
v3.40
v3.39
v3.38
v3.37.6
v3.37.5
v3.37.4
v3.37.3
v3.37.2
v3.37.1
v3.37
v3.36
v3.35
v3.34
v3.33.1
v3.33
v3.32.1
v3.32
v3.31.1
v3.31
v3.30.1
v3.30
v3.29
v3.28
v3.27.1
v3.27
v3.26
v3.25.1
v3.25
v3.24.1
v3.24
v3.23.2
v3.23.1
v3.23
v3.22
v3.21.1
v3.21
v3.20
v3.19.1
v3.19
v3.18.2
v3.18.1
v3.18
v3.17.3
v3.17.2
v3.17.1
v3.17
v3.16
v3.15
v3.14
v3.13
v3.12
v3.11.3
v3.11.2
v3.11.1
v3.11
v3.10
v3.9
v3.8.1
v3.8
v3.7
v3.6
v3.5
v3.4
v3.3
v3.2
v3.1
v3.0.1
v3.0
v2.51.2
v2.51.1
v2.51
v2.50
v2.49
v2.48
v2.47
v2.46.1
v2.46
v2.45
v2.44
v2.43.3
v2.43.2
v2.43.1
v2.42.1
v2.43
v2.42
v2.41
v2.40.2
v2.40.1
v2.40
v2.39
v2.38.2
v2.38.1
v2.38
v2.37
v2.36.3
v2.36.2
v2.36.1
v2.36
v2.34
v2.33.1
v2.33
v2.32
v2.31.1
v2.31
v2.30
v2.29
v2.28
v2.27.1
v2.27
v2.26
v2.25.2
v2.25.1
v2.25
v2.24.3
v2.24.2
v2.24.1
v2.24
v2.23.4
v2.23.3
v2.23.2
v2.23.1
v2.23
v2.22.1
v2.22
v2.21.3
v2.21.2
v2.21.1
v2.21
v2.20.2
v2.20.1
v2.20
v2.19.7
v2.19.6
v2.19.5
v2.19.4
v2.19.3
v2.19.2
v2.19.1
v2.19
v2.18.2
v2.18.1
v2.18
v2.17.1
v2.17
v2.16.7
v2.16.6
v2.16.5
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.16
v2.15.1
v2.15
v2.14.1
v2.14
v2.13.2
v2.13.1
v2.13
v2.12.1
v2.12
v2.11.2
v2.11.1
v2.11
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10
v2.9
v2.8.3
v2.8.2
v2.8.1
v2.8
v2.7.1
v2.7
v2.6.1
v2.6
v2.5.2
v2.5.1
v2.5
v2.4.2
v2.4.1
v2.4
v2.3.3
v2.3.2
v2.3.1
v2.3
v2.2.1
v2.2
v2.1.2
v2.1.1
v2.0
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24
v1.23.1
v1.23
v1.22
v1.21.2
v1.21.1
v1.21
v1.20
v1.19.2
v1.19.1
v1.19
v1.18.2
v1.18.1
v1.18
v1.17.3
v1.17.2
v1.17.1
v1.17
v1.16
v1.15
v1.14
v1.13.1
v1.13
v1.12.9
v1.12.8
v1.12.7
v1.12.6
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.12
v1.11.2
v1.11.1
v1.11
v1.10
v1.9.1
v1.9
v1.8
v1.7
v1.6
v1.5
v1.4
v1.3
v1.2
v1.1.4
v1.1.3
v1.1.2
v1.1.1
v1.1
v1.0
v0.14.5
v0.14.4
v0.14.3
v0.14.2
v0.14.1
v0.14
v0.13
v0.12
v0.11
v0.10
v0.9.1
v0.9
v0.8
v0.7
v0.6.2
v0.6.1
v0.6
v0.5
v0.4
v0.3
v0.2
v0.1
v2.1
v4.18.1
v4.18.2
v4.19.1
v4.20.0
v4.21.0
v4.21.1
v4.21.2
v4.21.3
v4.22.0
v4.22.1
v4.23.0
v4.23.1
v4.23.2
v4.23.3
v4.23.4
v4.24.2
v4.25.0
v4.25.1
v4.26.0
v4.27.0
v4.27.5
v4.28.2
v4.31.0
${ noResults }
2.2 KiB
2.2 KiB
VMess 设计
摘要
- 版本:1
格式
数据请求
认证部分:
- 16 字节:基于时间的 hash(用户 ID),见下文
指令部分:
- 1 字节:版本号,目前为 0x1
- 16 字节:请求数据 IV
- 16 字节:请求数据 Key
- 4 字节:认证信息 V
- 1 字节:指令
- 0x00:保留
- 0x01:TCP 请求
- 0x02:UDP 请求
- 2 字节:目标端口
- 1 字节:目标类型
- 0x01:IPv4
- 0x02:域名
- 0x03:IPv6
- 目标地址:
- 4 字节:IPv4
- 1 字节长度 + 域名
- 16 字节:IPv6
- 4 字节:指令部分前面所有内容的 FNV1a hash
数据部分
- N 字节:请求数据
其中指令部分经过 AES-128-CFB 加密:
- Key:md5(用户 ID + 'c48619fe-8f02-49e0-b9e9-edf763e17e21')
- IV:md5(X + X + X + X),X = []byte(UserHash 生成的时间) (8 字节, Big Endian)
数据部分使用 AES-128-CFB 加密,Key 和 IV 在请求数据中
数据应答
数据部分
- 4 字节:认证信息 V
- N 字节:应答数据
其中数据部分使用 AES-128-CFB 加密,IV 为 md5(请求数据 IV),Key 为 md5(请求数据 Key)
用户 ID
ID 等价于 UUID,是一个 16 字节长的随机数,它的作用相当于一个令牌(Token)。
一个 ID 形如:de305d54-75b4-431b-adb2-eb6b9e546014,几乎完全随机,可以使用任何的 UUID 生成器来生成,比如这个。
ID 在消息传递过程中用于验证客户端的有效性,只有当服务器认可当前 ID 时,才进行后续操作,否则关闭连接甚至加入黑名单。
在多用户环境中,用户帐号应与 ID 分开存放,即用户帐号和 ID 有一对一或一对多的关系,在 V2Ray Server 中,只负责管理 ID,用户帐号(及权限、费用等)由另外的系统管理。
在后续版本中,V2Ray Server 之间应有能力进行沟通而生成新的临时 ID,从而减少通讯的可探测性。
基于时间的用户 ID Hash
- H = MD5
- K = 用户 ID (16 字节)
- M = UTC 时间,精确到秒,取值为当前时间的前后 30 秒随机值(8 字节, Big Endian)
- Hash = HMAC(H, K, M)