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  默认禁用。