github.com/inazumav/sing-box@v0.0.0-20230926072359-ab51429a14f1/docs/configuration/shared/v2ray-transport.zh.md (about) 1 V2Ray Transport 是 v2ray 发明的一组私有协议,并污染了其他协议的名称,如 clash 中的 `trojan-grpc`。 2 3 ### 结构 4 5 ```json 6 { 7 "type": "" 8 } 9 ``` 10 11 可用的传输协议: 12 13 * HTTP 14 * WebSocket 15 * QUIC 16 * gRPC 17 18 !!! warning "与 v2ray-core 的区别" 19 20 * 没有 TCP 传输层, 纯 HTTP 已合并到 HTTP 传输层。 21 * 没有 mKCP 传输层。 22 * 没有 DomainSocket 传输层。 23 24 !!! note "" 25 26 当内容只有一项时,可以忽略 JSON 数组 [] 标签。 27 28 ### HTTP 29 30 ```json 31 { 32 "type": "http", 33 "host": [], 34 "path": "", 35 "method": "", 36 "headers": {}, 37 "idle_timeout": "15s", 38 "ping_timeout": "15s" 39 } 40 ``` 41 42 !!! warning "与 v2ray-core 的区别" 43 44 不强制执行 TLS。如果未配置 TLS,将使用纯 HTTP 1.1。 45 46 #### host 47 48 主机域名列表。 49 50 客户端将随机选择,默认服务器将验证。 51 52 #### path 53 54 HTTP 请求路径 55 56 默认服务器将验证。 57 58 #### method 59 60 HTTP 请求方法 61 62 默认服务器将验证。 63 64 #### headers 65 66 HTTP 请求的额外标头 67 68 默认服务器将写入响应。 69 70 #### idle_timeout 71 72 在 HTTP2 服务器中: 73 74 指定闲置客户端应在多长时间内使用 GOAWAY 帧关闭。PING 帧不被视为活动。 75 76 在 HTTP2 客户端中: 77 78 如果连接上没有收到任何帧,指定一段时间后将使用 PING 帧执行健康检查。需要注意的是,PING 响应被视为已接收的帧,因此如果连接上没有其他流量,则健康检查将在每个间隔执行一次。如果值为零,则不会执行健康检查。 79 80 默认使用零。 81 82 #### ping_timeout 83 84 在 HTTP2 客户端中: 85 86 指定发送 PING 帧后,在指定的超时时间内必须接收到响应。如果在指定的超时时间内没有收到 PING 帧的响应,则连接将关闭。默认超时持续时间为 15 秒。 87 88 ### WebSocket 89 90 ```json 91 { 92 "type": "ws", 93 "path": "", 94 "headers": {}, 95 "max_early_data": 0, 96 "early_data_header_name": "" 97 } 98 ``` 99 100 #### path 101 102 HTTP 请求路径 103 104 默认服务器将验证。 105 106 #### headers 107 108 HTTP 请求的额外标头。 109 110 #### max_early_data 111 112 请求中允许的最大有效负载大小。默认启用。 113 114 #### early_data_header_name 115 116 默认情况下,早期数据在路径而不是标头中发送。 117 118 要与 Xray-core 兼容,请将其设置为 `Sec-WebSocket-Protocol`。 119 120 它需要与服务器保持一致。 121 122 ### QUIC 123 124 ```json 125 { 126 "type": "quic" 127 } 128 ``` 129 130 !!! warning "" 131 132 默认安装不包含 QUIC, 参阅 [安装](/zh/#_2)。 133 134 !!! warning "与 v2ray-core 的区别" 135 136 没有额外的加密支持: 137 它基本上是重复加密。 并且 Xray-core 在这里与 v2ray-core 不兼容。 138 139 ### gRPC 140 141 !!! note "" 142 143 默认安装不包含标准 gRPC (兼容性好,但性能较差), 参阅 [安装](/zh/#_2)。 144 145 ```json 146 { 147 "type": "grpc", 148 "service_name": "TunService", 149 "idle_timeout": "15s", 150 "ping_timeout": "15s", 151 "permit_without_stream": false 152 } 153 ``` 154 155 #### service_name 156 157 gRPC 服务名称。 158 159 #### idle_timeout 160 161 在标准 gRPC 服务器/客户端: 162 163 如果传输在此时间段后没有看到任何活动,它会向客户端发送 ping 请求以检查连接是否仍然活动。 164 165 在默认 gRPC 服务器/客户端: 166 167 它的行为与 HTTP 传输层中的相应设置相同。 168 169 #### ping_timeout 170 171 在标准 gRPC 服务器/客户端: 172 173 经过一段时间之后,客户端将执行 keepalive 检查并等待活动。如果没有检测到任何活动,则会关闭连接。 174 175 在默认 gRPC 服务器/客户端: 176 177 它的行为与 HTTP 传输层中的相应设置相同。 178 179 #### permit_without_stream 180 181 在标准 gRPC 客户端: 182 183 如果启用,客户端传输即使没有活动连接也会发送 keepalive ping。如果禁用,则在没有活动连接时,将忽略 `idle_timeout` 和 `ping_timeout`,并且不会发送 keepalive ping。 184 185 默认禁用。